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§
- Default
OnFailed Upgrade - The default
OnFailedUpgradeused byWebSocketUpgrade. - WebSocket
- WebSocketStream used In handler Request
- WebSocket
Upgrade - Handle request for establishing WebSocket connection.
Enums§
- Message
- An enum representing the various forms of a WebSocket message.
- WebSocket
Error - Error type when using
WebSocket. - WebSocket
Upgrade Rejection Error Errors while extractingWebSocketUpgrade.
Traits§
- OnFailed
Upgrade - What to do when a connection upgrade fails.