rsocket_rust_transport_websocket/
lib.rs

1#![allow(clippy::type_complexity)]
2
3#[macro_use]
4extern crate log;
5
6mod client;
7mod connection;
8mod server;
9
10pub use client::{WebsocketClientTransport, WebsocketRequest};
11pub use server::WebsocketServerTransport;
12
13#[cfg(test)]
14mod test_websocket {
15    use rsocket_rust::prelude::*;
16    use tokio_tungstenite::tungstenite::client::IntoClientRequest;
17
18    use super::*;
19
20    #[ignore]
21    #[tokio::test]
22    async fn test_client() {
23        let mut req = "ws://127.0.0.1:8080/hello".into_client_request().unwrap();
24
25        // Optional: custom headers
26        let headers = req.headers_mut();
27        headers.insert("x-foo-bar", "42".parse().unwrap());
28
29        let tp = WebsocketClientTransport::from(req);
30        let c = RSocketFactory::connect()
31            .transport(tp)
32            .start()
33            .await
34            .expect("connect failed");
35        let res = c
36            .request_response(Payload::builder().set_data_utf8("foo").build())
37            .await
38            .expect("request failed")
39            .unwrap();
40
41        println!("response: {:?}", res);
42    }
43}