1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
//! Websocket extractor and response.
//!
//! # Example
//!
//! ```
//! use futures_util::{SinkExt, StreamExt};
//! use poem::{
//! get, handler,
//! web::websocket::{Message, WebSocket},
//! IntoResponse, Route,
//! };
//!
//! #[handler]
//! async fn index(ws: WebSocket) -> impl IntoResponse {
//! ws.on_upgrade(|mut socket| async move {
//! if let Some(Ok(Message::Text(text))) = socket.next().await {
//! let _ = socket.send(Message::Text(text)).await;
//! }
//! })
//! }
//!
//! let app = Route::new().at("/", get(index));
//! ```
mod extractor;
mod message;
mod stream;
mod utils;
pub use extractor::WebSocket;
pub use message::{CloseCode, Message};
pub use stream::WebSocketStream;