@@ -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 = " Henryfan@msn.com" ;
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" , " henryfan@msn.com" , " 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 = " henryfan@msn.com" ;
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