From 3971c5f504a65cf4a8271290386d29e62c0142f0 Mon Sep 17 00:00:00 2001 From: liyj <1617420630@qq.com> Date: Thu, 20 Nov 2025 11:34:33 +0800 Subject: [PATCH] =?UTF-8?q?im=E8=B0=83=E6=95=B4sesion,=E8=A7=A3=E5=86=B3?= =?UTF-8?q?=E4=B8=80=E6=AC=A1=E6=80=A7=E6=B8=85=E9=99=A4session=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../websocket/service/LocalSessionManager.java | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/mall-im/src/main/java/com/suisung/mall/im/common/websocket/service/LocalSessionManager.java b/mall-im/src/main/java/com/suisung/mall/im/common/websocket/service/LocalSessionManager.java index 72c3feeb..4e8ff23b 100644 --- a/mall-im/src/main/java/com/suisung/mall/im/common/websocket/service/LocalSessionManager.java +++ b/mall-im/src/main/java/com/suisung/mall/im/common/websocket/service/LocalSessionManager.java @@ -41,9 +41,9 @@ public class LocalSessionManager { if (userId == null || session == null) { return; } - userSessions.computeIfPresent(userId, (key, sessions) -> { - sessions.remove(session); + sessions.removeIf(webSocketSession -> + webSocketSession.getId().equals(session.getId())); return sessions.isEmpty() ? null : sessions; }); } @@ -112,13 +112,11 @@ public class LocalSessionManager { * 移除群组会话 */ public void removeGroupSession(String groupId, WebSocketSession session) { - List sessions = groupSessions.get(groupId); - if (sessions != null) { - sessions.remove(session); - if (sessions.isEmpty()) { - groupSessions.remove(groupId); - } - } + groupSessions.computeIfPresent(groupId, (key, gropSession) -> { + gropSession.removeIf(webSocketSession -> + webSocketSession.getId().equals(session.getId())); + return gropSession.isEmpty() ? null : gropSession; + }); } /**