pub fn upgrade_ws_with_req<H, R, B, E>(
handler: H,
) -> impl Fn(Request<Body>) -> Ready<Result<Response<B>, E>> + Send + 'staticExpand description
Upgrades the http requests to websocket while still providing the request for accesing things like headers or extensions.
ยงExamples
use routerify_ws::{upgrade_ws_with_req, WebSocket};
async fn ws_handler(req:Request<Body>,ws: WebSocket) {
println!("New websocket connection: {} {:?}", ws.remote_addr(),req.headers());
// Handle websocket connection.
}
fn router() -> Router<Body, Infallible> {
// Create a router and specify the path and the handler for new websocket connections.
Router::builder()
// Upgrade the http requests at `/ws` path to websocket.
.any_method("/ws", upgrade_ws_with_req(ws_handler))
.build()
.unwrap()
}