From 79b03a90a7f5ce19e32f710bdad5072c81ab19a3 Mon Sep 17 00:00:00 2001 From: zhenyi <434836402@qq.com> Date: Sat, 30 May 2026 15:07:31 +0800 Subject: [PATCH] refactor: update Socket.IO actix integration --- lib/socketio/actix.rs | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/lib/socketio/actix.rs b/lib/socketio/actix.rs index a3e6585..6fc5613 100644 --- a/lib/socketio/actix.rs +++ b/lib/socketio/actix.rs @@ -92,9 +92,8 @@ async fn engine_post( validate_sid(sid)?; let session = io.session(sid).await.ok_or_else(|| ErrorNotFound("sid"))?; if session.post_active.compare_exchange(false, true, Ordering::Acquire, Ordering::Relaxed).is_err() { - io.remove_session(&session, DisconnectReason::TransportClosed) - .await; - return Err(ErrorBadRequest("overlapping post request")); + // Another POST is in progress — return error without destroying session + return Err(ErrorBadRequest("concurrent polling request")); } let _guard = ActiveGuard(session.post_active.clone()); @@ -149,9 +148,8 @@ async fn polling_get( validate_sid(sid)?; let session = io.session(sid).await.ok_or_else(|| ErrorNotFound("sid"))?; if session.get_active.compare_exchange(false, true, Ordering::Acquire, Ordering::Relaxed).is_err() { - io.remove_session(&session, DisconnectReason::TransportClosed) - .await; - return Err(ErrorBadRequest("overlapping get request")); + // Another GET is in progress — return error without destroying session + return Err(ErrorBadRequest("concurrent polling request")); } let _guard = ActiveGuard(session.get_active.clone());