use futures_lite::future::block_on;
use ugi::WebSocketMessage;
fn main() -> Result<(), Box<dyn std::error::Error>> {
block_on(async move {
let client = ugi::Client::builder().bearer_auth("token")?.build()?;
let mut socket = client
.ws("wss://stream.example.com/echo")
.protocol("chat.v1")
.await?;
socket.send_text("hello from request").await?;
match socket.next().await {
Some(Ok(WebSocketMessage::Text(text))) => println!("{text}"),
Some(Ok(message)) => println!("{message:?}"),
Some(Err(err)) => return Err(err.into()),
None => {}
}
socket.close().await?;
Ok(())
})
}