David Pedersen
|
4194cf70da
|
Change WebSocket API to use an extractor (#121)
Fixes https://github.com/tokio-rs/axum/issues/111
Example usage:
```rust
use axum::{
prelude::*,
extract::ws::{WebSocketUpgrade, WebSocket},
response::IntoResponse,
};
let app = route("/ws", get(handler));
async fn handler(ws: WebSocketUpgrade) -> impl IntoResponse {
ws.on_upgrade(handle_socket)
}
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;
}
}
}
```
|
2021-08-07 17:26:23 +02:00 |
|