fix(websocket): lossless EOF signal + pending sweep (WS-02, CON-02)

Replace the axum/tungstenite pump paths' Notify-based read-EOF signal
with a retained tokio watch channel so a late subscriber observes EOF
regardless of when it fired. Extend the from_wss drop monitor to sweep
the pending map (1 s interval) once EOF is observed, so calls
registered after the initial fail_all also resolve retryable instead
of hanging.

cargo test; cargo clippy --all-targets -- -D warnings (default +
all-features); cargo fmt --check
This commit is contained in:
2026-08-29 08:48:10 +00:00
parent a943d142c4
commit 5ff88756eb
3 changed files with 85 additions and 28 deletions
+2
View File
@@ -18,6 +18,8 @@ pub use byte_adapter::{
#[cfg(any(test, feature = "wss"))]
pub use byte_adapter::split_tungstenite_to_bytes;
#[cfg(feature = "wss")]
pub(crate) use byte_adapter::wait_for_eof;
pub use upgrade::{run_channels_session, ws_bearer_auth, ws_upgrade_handler};
#[cfg(any(test, feature = "test-support"))]