Use the tokio-tungstenite crate to create an asynchronous WebSocket client that connects to a server and exchanges messages.
use tokio_tungstenite::connect_async;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let (ws_stream, _) = connect_async("ws://localhost:8080").await?;
let (mut write, mut read) = ws_stream.split();
// Send a message
write.send(tungstenite::Message::Text("Hello".to_string())).await?;
// Read a response
if let Some(msg) = read.next().await {
println!("Received: {:?}", msg?);
}
Ok(())
}