Module ws

Module ws 

Source
Available on crate features server and ws only.
Expand description

WebSocket implementation for server.

This module provides utilities for setting up and handling WebSocket connections, including configuring WebSocket options, setting protocols and upgrading connections.

§Example

use std::convert::Infallible;

use futures_util::{sink::SinkExt, stream::StreamExt};
use volo_http::{
    response::Response,
    server::{
        route::{Router, get},
        utils::ws::{Message, WebSocket, WebSocketUpgrade},
    },
};

async fn handle_socket(mut socket: WebSocket) {
    while let Some(Ok(msg)) = socket.next().await {
        match msg {
            Message::Text(_) => {
                socket.send(msg).await.unwrap();
            }
            _ => {}
        }
    }
}

async fn ws_handler(ws: WebSocketUpgrade) -> Response {
    ws.on_upgrade(handle_socket)
}

let app: Router = Router::new().route("/ws", get(ws_handler));

See WebSocketUpgrade and WebSocket for more details.

Structs§

DefaultOnFailedUpgrade
The default OnFailedUpgrade used by WebSocketUpgrade.
WebSocket
WebSocketStream used In handler Request
WebSocketUpgrade
Handle request for establishing WebSocket connection.

Enums§

Message
An enum representing the various forms of a WebSocket message.
WebSocketError
Error type when using WebSocket.
WebSocketUpgradeRejectionError
Errors while extracting WebSocketUpgrade.

Traits§

OnFailedUpgrade
What to do when a connection upgrade fails.