diff --git a/axum/src/extract/ws.rs b/axum/src/extract/ws.rs index 5ac3f622..4e23273a 100644 --- a/axum/src/extract/ws.rs +++ b/axum/src/extract/ws.rs @@ -96,7 +96,7 @@ use crate::{body::Bytes, response::Response, Error}; use axum_core::body::Body; use futures_util::{ sink::{Sink, SinkExt}, - stream::{Stream, StreamExt}, + stream::{FusedStream, Stream, StreamExt}, }; use http::{ header::{self, HeaderMap, HeaderName, HeaderValue}, @@ -533,6 +533,13 @@ impl WebSocket { } } +impl FusedStream for WebSocket { + /// Returns true if the websocket has been terminated. + fn is_terminated(&self) -> bool { + self.inner.is_terminated() + } +} + impl Stream for WebSocket { type Item = Result;