Skip to content

Commit 2da2605

Browse files
authored
Update README.md
1 parent a24b6c6 commit 2da2605

File tree

1 file changed

+38
-85
lines changed

1 file changed

+38
-85
lines changed

README.md

Lines changed: 38 additions & 85 deletions
Original file line numberDiff line numberDiff line change
@@ -9,101 +9,54 @@ Install-Package BeetleX.XRPC -Version x
99
```
1010
## Server
1111
``` csharp
12-
class Program
13-
{
14-
private static XRPCServer mXRPCServer;
15-
static void Main(string[] args)
16-
{
17-
mXRPCServer = new XRPCServer();
18-
//mXRPCServer.ServerOptions.DefaultListen.Port = 80;
19-
mXRPCServer.Register(typeof(Program).Assembly);
20-
mXRPCServer.Open();
21-
Console.Read();
22-
}
23-
}
24-
```
25-
## Server controller
26-
``` csharp
27-
[Controller(typeof(IUserService))]
28-
public class UserService : IUserService
12+
class Program
2913
{
30-
public Task<User> Add(string name, string email, string city, string remark)
31-
{
32-
User user = new User();
33-
user.Name = name;
34-
user.EMail = email;
35-
user.City = city;
36-
user.Remark = remark;
37-
return Task.FromResult(user);
38-
}
39-
40-
public Task<List<User>> List(int count)
14+
static void Main(string[] args)
4115
{
42-
List<User> result = new List<User>();
43-
for (int i = 0; i < count; i++)
16+
var builder = new HostBuilder()
17+
.ConfigureServices((hostContext, services) =>
4418
{
45-
User user = new User();
46-
user.ID = Guid.NewGuid().ToString("N");
47-
user.City = "GuangZhou";
48-
user.EMail = "[email protected]";
49-
user.Name = "henryfan";
50-
user.Remark = "http://ikende.com";
51-
result.Add(user);
52-
}
53-
return Task.FromResult(result);
54-
}
55-
56-
public bool Login(string name, string pwd)
57-
{
58-
return (name == "admin" && pwd == "123456");
19+
services.UseXRPC(s =>
20+
{
21+
s.ServerOptions.LogLevel = BeetleX.EventArgs.LogType.Trace;
22+
s.ServerOptions.DefaultListen.Port = 9090;
23+
s.RPCOptions.ParameterFormater = new JsonPacket();//default messagepack
24+
},
25+
typeof(Program).Assembly);
26+
});
27+
builder.Build().Run();
5928
}
29+
}
30+
```
31+
## Server controller
32+
``` csharp
6033

61-
public User Modify(User user)
62-
{
63-
return user;
64-
}
34+
public interface IHello
35+
{
36+
Task<string> Hello(string name);
37+
}
6538

66-
public void Save()
39+
[Service(typeof(IHello))]
40+
public class HelloImpl : IHello
41+
{
42+
public Task<string> Hello(string name)
6743
{
68-
Console.WriteLine("user saved");
44+
return $"hello {name} {DateTime.Now}".ToTask();
6945
}
7046
}
7147
```
7248
## Client
7349
``` csharp
74-
client = new XRPCClient("localhost", 9090);
75-
client.Connect();
76-
client.NetError = (c, e) =>
77-
{
78-
Console.WriteLine(e.Error.Message);
79-
};
80-
client.TimeOut = 10000;
81-
```
82-
``` csharp
83-
var api = client.Create<IUserService>();
84-
var lresult = await api.Login("admin", "123456");
85-
Console.WriteLine(lresult);
86-
var result = await api.Add("henry", "[email protected]", "gz", "http://github.com");
87-
Console.WriteLine($"{result.Name}\t{result.EMail}\t{result.City}\t{result.Remark}");
88-
await api.Save();
89-
Console.WriteLine("save completed");
90-
User user = new User();
91-
user.ID = Guid.NewGuid().ToString("N");
92-
user.Name = "henry";
93-
user.EMail = "[email protected]";
94-
user.City = "GuangZhou";
95-
user.Remark = "http://github.com/ikende";
96-
result = await api.Modify(user);
97-
Console.WriteLine($"{result.Name}\t{result.EMail}\t{result.City}\t{result.Remark}");
98-
var items = await api.List(5);
99-
foreach(var item in items)
100-
{
101-
Console.WriteLine($"{item.Name}\t{item.EMail}\t{item.City}\t{item.Remark}");
102-
}
50+
client = new XRPCClient("localhost", 9090);
51+
client.Options.ParameterFormater = new JsonPacket();//default messagepack
52+
hello = client.Create<IHello>();
53+
while(true)
54+
{
55+
Console.Write("Enter you name:");
56+
var name = Console.ReadLine();
57+
var task = hello.Hello(name);
58+
task.Wait();
59+
Console.WriteLine(task.Result);
60+
}
10361
```
104-
## Performance
105-
`
106-
Server:E3-1230V2 16Gb Bandwidth:10Gb sysetm:windows 2008
107-
`
108-
![](https://github.com/IKende/dotnet-rpc-benchmark/raw/master/Result/10G_128C.png?raw=true)
109-
[https://github.com/IKende/dotnet-rpc-benchmark](https://github.com/IKende/dotnet-rpc-benchmark)
62+

0 commit comments

Comments
 (0)