From 53cc5a0d7623fac8e8eef86409bd90a90d64128c Mon Sep 17 00:00:00 2001 From: liyj <1617420630@qq.com> Date: Tue, 18 Nov 2025 15:55:38 +0800 Subject: [PATCH] =?UTF-8?q?im=E9=97=AE=E9=A2=98=E4=BF=AE=E5=A4=8D-?= =?UTF-8?q?=E8=8E=B7=E5=8F=96=E4=B8=8D=E5=88=B0=E7=94=A8=E6=88=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/onchat/MallsuiteImSocketHandler.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/mall-im/src/main/java/com/suisung/mall/im/common/websocket/service/onchat/MallsuiteImSocketHandler.java b/mall-im/src/main/java/com/suisung/mall/im/common/websocket/service/onchat/MallsuiteImSocketHandler.java index fe8b27dc..5d35d14b 100644 --- a/mall-im/src/main/java/com/suisung/mall/im/common/websocket/service/onchat/MallsuiteImSocketHandler.java +++ b/mall-im/src/main/java/com/suisung/mall/im/common/websocket/service/onchat/MallsuiteImSocketHandler.java @@ -51,7 +51,7 @@ public class MallsuiteImSocketHandler implements WebSocketHandler { public void afterConnectionEstablished(WebSocketSession session) throws Exception { logger.debug("connect to the websocket success......"); - String loginUserId = (String) session.getAttributes().get(Constants.WEBSOCKET_LOGINNAME); + String loginUserId = String.valueOf(session.getAttributes().get("user_id")) ; String sessionId = session.getId(); // 存储到本地会话管理 @@ -63,7 +63,7 @@ public class MallsuiteImSocketHandler implements WebSocketHandler { // 注册到分布式会话服务 Map attributes = new HashMap<>(); - attributes.put("user_id", session.getAttributes().get("user_id")); + attributes.put("user_id", String.valueOf(session.getAttributes().get("user_id"))); attributes.put("loginName", loginUserId); distributedSessionService.registerUserSession(loginUserId, sessionId, attributes); @@ -198,11 +198,14 @@ public class MallsuiteImSocketHandler implements WebSocketHandler { * 清理会话资源 */ private void cleanupSession(WebSocketSession session) { - String loginUserId = (String) session.getAttributes().get(Constants.WEBSOCKET_LOGINNAME); + String loginUserId = String.valueOf(session.getAttributes().get("user_id")) ; String sessionId = session.getId(); String groupId = (String) session.getAttributes().get(Constants.WEBSOCKET_GROUP_KEY); // 从本地管理移除 + if(localSessionManager.getUserSessions()==null){ + localSessionManager.setUserSessions(new ConcurrentHashMap<>()); + } localSessionManager.removeUserSession(loginUserId, session); if (groupId != null) { localSessionManager.removeGroupSession(groupId, session);