Skip to main content

websocket_handler

Function websocket_handler 

Source
pub fn websocket_handler<F, Fut>(ws: WebSocketUpgrade, handler: F) -> Response
where F: FnOnce(WebSocket) -> Fut + Send + 'static, Fut: Future<Output = ()> + Send + 'static,
Expand description

Helper to create a WebSocket handler from a simple async function.

use framework::ws::websocket_handler;

async fn handle_socket(mut socket: WebSocket) {
    while let Some(Ok(msg)) = socket.recv().await {
        if let Message::Text(text) = msg {
            socket.send(Message::Text(format!("Echo: {}", text))).await.ok();
        }
    }
}

// In your router:
Router::new()
    .route("/ws", get(|ws: WebSocketUpgrade| websocket_handler(ws, handle_socket)))