RSocket Transport For Websocket

Example

Add dependencies in your Cargo.toml.

```toml [dependencies] tokio = "0.2.11" rsocket_rust = "0.5.0"

choose transport:

rsocketrusttransport_tcp = "0.5.0"

rsocketrusttransport_websocket = "0.5.0"

```

Server

```rust use rsocketrust::prelude::*; use rsocketrusttransportwebsocket::WebsocketServerTransport; use std::env; use std::error::Error;

[tokio::main]

async fn main() -> Result<(), Box> { RSocketFactory::receive() .transport(WebsocketServerTransport::from("127.0.0.1:8080")) .acceptor(|setup, socket| { println!("accept setup: {:?}", setup) Ok(Box::new(EchoRSocket)) // Or you can reject setup // Err(From::from("SETUPNOTALLOW")) }) .onstart(|| println!("+++++++ echo server started! +++++++")) .serve() .await }

```

Client

```rust use rsocketrust::prelude::*; use rsocketrusttransportwebsocket::WebsocketClientTransport;

[tokio::main]

[test]

async fn test() { let cli = RSocketFactory::connect() .acceptor(|| Box::new(EchoRSocket)) .transport(WebsocketClientTransport::from("127.0.0.1:8080")) .setup(Payload::from("READY!")) .mimetype("text/plain", "text/plain") .start() .await .unwrap(); let req = Payload::builder() .setdatautf8("Hello World!") .setmetadatautf8("Rust") .build(); let res = cli.requestresponse(req).await.unwrap(); println!("got: {:?}", res); cli.close(); }

```