@@ -6,63 +6,78 @@ Add dependencies in your `Cargo.toml`.
66
77``` toml
88[dependencies ]
9- tokio = " 0.2.11"
10- rsocket_rust = " 0.5.0"
11-
12- # choose transport:
13- # rsocket_rust_transport_tcp = "0.5.0"
14- # rsocket_rust_transport_websocket = "0.5.0"
9+ tokio = " 0.2.16"
10+ rsocket_rust = " 0.5.1"
11+ rsocket_rust_transport_websocket = " 0.5.1"
1512```
1613
1714### Server
1815
1916``` rust
20- use rsocket_rust :: prelude :: * ;
17+ use log :: info;
18+ use rsocket_rust :: prelude :: {EchoRSocket , RSocketFactory , ServerResponder };
2119use rsocket_rust_transport_websocket :: WebsocketServerTransport ;
22- use std :: env;
2320use std :: error :: Error ;
2421
2522#[tokio:: main]
2623async fn main () -> Result <(), Box <dyn Error + Send + Sync >> {
24+ let transport : WebsocketServerTransport = WebsocketServerTransport :: from (" 127.0.0.1:8080" );
25+
26+ let responder : ServerResponder = Box :: new (| setup , _socket | {
27+ info! (" accept setup: {:?}" , setup );
28+ Ok (Box :: new (EchoRSocket ))
29+ // Or you can reject setup
30+ // Err(From::from("SETUP_NOT_ALLOW"))
31+ });
32+
33+ let on_start : Box <dyn FnMut () + Send + Sync > =
34+ Box :: new (|| info! (" +++++++ echo server started! +++++++" ));
35+
2736 RSocketFactory :: receive ()
28- . transport (WebsocketServerTransport :: from (" 127.0.0.1:8080" ))
29- . acceptor (| setup , _socket | {
30- println! (" accept setup: {:?}" , setup )
31- Ok (Box :: new (EchoRSocket ))
32- // Or you can reject setup
33- // Err(From::from("SETUP_NOT_ALLOW"))
34- })
35- . on_start (|| println! (" +++++++ echo server started! +++++++" ))
37+ . transport (transport )
38+ . acceptor (responder )
39+ . on_start (on_start )
3640 . serve ()
37- . await
41+ . await ? ;
42+
43+ Ok (())
3844}
3945
4046```
4147
4248### Client
4349
4450``` rust
45- use rsocket_rust :: prelude :: * ;
51+ use log :: info;
52+ use rsocket_rust :: prelude :: {ClientResponder , EchoRSocket , Payload , RSocket , RSocketFactory };
4653use rsocket_rust_transport_websocket :: WebsocketClientTransport ;
54+ use std :: error :: Error ;
4755
4856#[tokio:: main]
49- #[test]
50- async fn test () {
51- let cli = RSocketFactory :: connect ()
52- . acceptor (|| Box :: new (EchoRSocket ))
57+ async fn main () -> Result <(), Box <dyn Error + Send + Sync >> {
58+ let responder : ClientResponder = Box :: new (|| Box :: new (EchoRSocket ));
59+
60+ let client = RSocketFactory :: connect ()
61+ . acceptor (responder )
5362 . transport (WebsocketClientTransport :: from (" 127.0.0.1:8080" ))
5463 . setup (Payload :: from (" READY!" ))
5564 . mime_type (" text/plain" , " text/plain" )
5665 . start ()
5766 . await
5867 . unwrap ();
59- let req = Payload :: builder ()
68+
69+ let request_payload : Payload = Payload :: builder ()
6070 . set_data_utf8 (" Hello World!" )
6171 . set_metadata_utf8 (" Rust" )
6272 . build ();
63- let res = cli . request_response (req ). await . unwrap ();
64- println! (" got: {:?}" , res );
65- cli . close ();
73+
74+ let res = client . request_response (request_payload ). await . unwrap ();
75+
76+ info! (" got: {:?}" , res );
77+
78+ client . close ();
79+
80+ Ok (())
6681}
6782
6883```
0 commit comments