Skip to content

Commit 64d018e

Browse files
authored
Merge pull request #9 from kuronyago/docs/readme_for_websocket_example
sync ws example README with rsocket v0.5.1
2 parents 689fc27 + b76b5d8 commit 64d018e

File tree

1 file changed

+41
-26
lines changed

1 file changed

+41
-26
lines changed

rsocket-transport-websocket/README.md

Lines changed: 41 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -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};
2119
use rsocket_rust_transport_websocket::WebsocketServerTransport;
22-
use std::env;
2320
use std::error::Error;
2421

2522
#[tokio::main]
2623
async 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};
4653
use 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

Comments
 (0)