From 8bf12d04cde318afa440e24efa4b14dbc7c77870 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B1=88=E5=B1=95=E8=88=AA?= <2426745133@qq.com> Date: Thu, 11 Sep 2025 15:18:53 +0800 Subject: [PATCH] =?UTF-8?q?09-10-netty=E4=BC=98=E5=8C=96=E5=B7=B2=E8=AF=BB?= =?UTF-8?q?=E8=BF=94=E5=9B=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dromara/websocket/ChatServerHandler.java | 24 ++++++++++--------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/websocket/ChatServerHandler.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/websocket/ChatServerHandler.java index c9f82c55..400f6253 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/websocket/ChatServerHandler.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/websocket/ChatServerHandler.java @@ -241,12 +241,13 @@ public class ChatServerHandler extends SimpleChannelInboundHandler 0) { -// userRoomCountMap.put(channelUserMap.get(ctx) + "+" + jsonObject.get("roomId"), userRoomCountMap.get(channelUserMap.get(ctx) + "+" + jsonObject.get("roomId")) - 1); -// }else { -// userRoomCountMap.put(channelUserMap.get(ctx) + "+" + jsonObject.get("roomId"), 0); -// } + //清空过后返回其余房间未读消息 + HashMap temp = new HashMap<>(); + userRoomCountMap.forEachKey(0,key ->{ + if (key.contains(sysUserVo.getUserId().toString())){ + temp.put(key,userRoomCountMap.get(key)); + } + }); + //构建消息 + JSONObject message = new JSONObject(); + message.put("type", "1"); + message.put("unReadCount", temp); } -// else if ("2".equals(type)){ -// //前端点击某个聊天房间进入时 仅需发送type2 清空该房间的未读消息数 -// userRoomCountMap.put(channelUserMap.get(ctx) + "+" + jsonObject.get("roomId"), 0); -// //将该房间对应消息都置为已读 -// } } // 处理异常