How do I get the query parameters when accepting a websocket connection using axum?
The following code is used to accept a websocket connection, but how can I get the parameters of the url?
// Echo back
async fn handle_socket(mut socket: WebSocket) {
while let Some(msg) = socket.recv().await {
let msg = if let Ok(msg) = msg {
msg
} else {
// client disconnected
return;
};
if socket.send(msg).await.is_err() {
// client disconnected
return;
}
}
}
async fn ws_handle(ws: WebSocketUpgrade) -> Response {
ws.on_upgrade(handle_socket)
}
let app = Router::new()
.route("/ws", get(ws_handle));
axum::Server::bind(&"0.0.0.0:3000".parse().unwrap())
.serve(app.into_make_service())
.await
.unwrap();
For example, I access via wscat ws://127.0.0.1:3000/ws?name=aaa&age=18
and want to get the name and age fetch values.