diff --git a/examples/autobahn-server.rs b/examples/autobahn-server.rs index d3368b4..2030229 100644 --- a/examples/autobahn-server.rs +++ b/examples/autobahn-server.rs @@ -2,25 +2,34 @@ use async_std::net::{SocketAddr, TcpListener, TcpStream}; use async_tungstenite::accept_async; use futures::{SinkExt, StreamExt}; use log::*; +use tungstenite::Result; async fn accept_connection(peer: SocketAddr, stream: TcpStream) { + if let Err(err) = handle_connection(peer, stream).await { + error!("Error processing connection: {}", err); + } +} + +async fn handle_connection(peer: SocketAddr, stream: TcpStream) -> Result<()> { let mut ws_stream = accept_async(stream).await.expect("Failed to accept"); info!("New WebSocket connection: {}", peer); while let Some(msg) = ws_stream.next().await { - let msg = msg.expect("Failed to get request"); + let msg = msg?; if msg.is_text() || msg.is_binary() { - ws_stream.send(msg).await.expect("Failed to send response"); + ws_stream.send(msg).await?; } } + + Ok(()) } async fn run() { env_logger::init(); let addr = "127.0.0.1:9002"; - let listener = TcpListener::bind(&addr).await.unwrap(); + let listener = TcpListener::bind(&addr).await.expect("Can't listen"); info!("Listening on: {}", addr); while let Ok((stream, _)) = listener.accept().await {