Skip to content

Commit 4a2a575

Browse files
committed
fix readme.
1 parent f8cd2aa commit 4a2a575

File tree

1 file changed

+66
-0
lines changed

1 file changed

+66
-0
lines changed

rsocket-transport-websocket/README.md

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,68 @@
11
# RSocket Transport For Websocket
22

3+
## Example
4+
5+
Add dependencies in your `Cargo.toml`.
6+
7+
```toml
8+
[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"
15+
```
16+
17+
### Server
18+
19+
```rust
20+
use rsocket_rust::prelude::*;
21+
use rsocket_rust_transport_websocket::WebsocketServerTransport;
22+
use std::env;
23+
use std::error::Error;
24+
25+
#[tokio::main]
26+
async fn main() -> Result<(), Box<dyn Error + Send + Sync>> {
27+
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! +++++++"))
36+
.serve()
37+
.await
38+
}
39+
40+
```
41+
42+
### Client
43+
44+
```rust
45+
use rsocket_rust::prelude::*;
46+
use rsocket_rust_transport_websocket::WebsocketClientTransport;
47+
48+
#[tokio::main]
49+
#[test]
50+
async fn test() {
51+
let cli = RSocketFactory::connect()
52+
.acceptor(|| Box::new(EchoRSocket))
53+
.transport(WebsocketClientTransport::from("127.0.0.1:8080"))
54+
.setup(Payload::from("READY!"))
55+
.mime_type("text/plain", "text/plain")
56+
.start()
57+
.await
58+
.unwrap();
59+
let req = Payload::builder()
60+
.set_data_utf8("Hello World!")
61+
.set_metadata_utf8("Rust")
62+
.build();
63+
let res = cli.request_response(req).await.unwrap();
64+
println!("got: {:?}", res);
65+
cli.close();
66+
}
67+
68+
```

0 commit comments

Comments
 (0)