diff --git a/axum/src/extract/ws.rs b/axum/src/extract/ws.rs index 9b255799..9f9e6eb0 100644 --- a/axum/src/extract/ws.rs +++ b/axum/src/extract/ws.rs @@ -94,7 +94,7 @@ use self::rejection::*; use super::FromRequestParts; use crate::{body::Bytes, response::Response, Error}; use axum_core::body::Body; -use futures_core::Stream; +use futures_core::{FusedStream, Stream}; use futures_sink::Sink; use futures_util::{sink::SinkExt, stream::StreamExt}; use http::{ @@ -530,6 +530,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;