use futures_util::{SinkExt, StreamExt, TryStreamExt}; use reqwest::Client; use reqwest_websocket::{Error, Message, RequestBuilderExt}; #[tokio::main(flavor = "current_thread")] async fn main() -> Result<(), Error> { let websocket = Client::default() .get("wss://echo.websocket.org/") .upgrade() .send() .await? .into_websocket() .await?; let (mut tx, mut rx) = websocket.split(); tokio::task::spawn_local(async move { for i in 1..11 { tx.send(Message::Text(format!("Hello, World! #{i}"))) .await .unwrap(); } }); while let Some(message) = rx.try_next().await? { if let Message::Text(text) = message { println!("received: {text}"); } } Ok(()) }