From ec423441014b4f61b44a3e5bb477b8659c67a142 Mon Sep 17 00:00:00 2001 From: liyj <1617420630@qq.com> Date: Wed, 19 Nov 2025 16:59:00 +0800 Subject: [PATCH] =?UTF-8?q?im=E5=88=86=E5=B8=83=E5=BC=8F=E6=B5=8B=E8=AF=95?= =?UTF-8?q?=E6=96=B9=E6=A1=88-=E5=8D=95=E6=9C=BA=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../websocket/service/DistributedMessageService.java | 8 ++++++-- .../im/common/websocket/service/LocalSessionManager.java | 4 ++++ .../service/onchat/MallsuiteImSocketHandler.java | 4 ++-- .../mall/sns/service/impl/SnsUserMessageServiceImpl.java | 4 ++++ 4 files changed, 16 insertions(+), 4 deletions(-) diff --git a/mall-im/src/main/java/com/suisung/mall/im/common/websocket/service/DistributedMessageService.java b/mall-im/src/main/java/com/suisung/mall/im/common/websocket/service/DistributedMessageService.java index 74175b2f..f35bd27c 100644 --- a/mall-im/src/main/java/com/suisung/mall/im/common/websocket/service/DistributedMessageService.java +++ b/mall-im/src/main/java/com/suisung/mall/im/common/websocket/service/DistributedMessageService.java @@ -34,6 +34,10 @@ public class DistributedMessageService { /** * 发送消息给用户 + * @param targetUserId 目标用户就是account的id + * @param message + * @param userSessions + * @return */ public boolean sendToUser(String targetUserId, SendVO message, ConcurrentHashMap> userSessions) { log.info("targetUserId{},message:{}", targetUserId, message); @@ -46,10 +50,10 @@ public class DistributedMessageService { if (isCurrentServer(targetServer)) { // 用户在当前服务器,直接发送 - return localSessionManager.sendToUser(targetUserId, message,userSessions); + return localSessionManager.sendToUser(message.getToid(), message,userSessions); } else { // 用户在其他服务器,通过RabbitMQ转发 - forwardToUser(targetServer, targetUserId, message); + forwardToUser(targetServer, message.getToid(), message); return true; } } 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 c9f845b6..e05e58b1 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 @@ -68,6 +68,10 @@ public class LocalSessionManager { /** * 发送消息给用户 + * @param userId session的id + * @param message + * @param userSession + * @return */ public boolean sendToUser(String userId, SendVO message,ConcurrentHashMap> userSession) { if (userId == null || message == null) { 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 e4b11f83..5efe29c2 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 @@ -130,7 +130,7 @@ public class MallsuiteImSocketHandler implements WebSocketHandler { chat.setMsg(msg); chat.setType("friend"); chat.setCreate_date(new Date()); - boolean isSuccess = distributedMessageService.sendToUser(receiver, sendVO,localSessionManager.getUserSessions()); + boolean isSuccess = distributedMessageService.sendToUser(String.valueOf(toUserId), sendVO,localSessionManager.getUserSessions()); if (isSuccess) { chat.setStatus("1"); } else { @@ -140,7 +140,7 @@ public class MallsuiteImSocketHandler implements WebSocketHandler { sendVO.setMsg_type("text"); sendVO.setMessage_length("0"); sendVO.setId(to.getId()); - distributedMessageService.sendToUser(sender, sendVO,localSessionManager.getUserSessions()); + distributedMessageService.sendToUser(String.valueOf(toUserId), sendVO,localSessionManager.getUserSessions()); chat.setStatus("0"); } chatHistoryService.saveNew(chat); diff --git a/mall-sns/src/main/java/com/suisung/mall/sns/service/impl/SnsUserMessageServiceImpl.java b/mall-sns/src/main/java/com/suisung/mall/sns/service/impl/SnsUserMessageServiceImpl.java index 48945ead..da462ab9 100644 --- a/mall-sns/src/main/java/com/suisung/mall/sns/service/impl/SnsUserMessageServiceImpl.java +++ b/mall-sns/src/main/java/com/suisung/mall/sns/service/impl/SnsUserMessageServiceImpl.java @@ -820,6 +820,10 @@ public class SnsUserMessageServiceImpl extends BaseServiceImpl