From 8a5921f35ddca055d2ac00045a7e37cc4125c2f0 Mon Sep 17 00:00:00 2001 From: tangw Date: Thu, 27 Nov 2025 19:26:16 +0800 Subject: [PATCH] =?UTF-8?q?websocket=E6=B6=88=E6=81=AF=E6=9C=8D=E5=8A=A1?= =?UTF-8?q?=E5=99=A8=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../websocket/WebSocketMsgServiceImpl.java | 19 +++++++++++++++++++ .../czlis/interfaceCommon/websocket/notsbook | 4 ++-- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/websocket/WebSocketMsgServiceImpl.java b/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/websocket/WebSocketMsgServiceImpl.java index 5c78a65..b5f4ce0 100644 --- a/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/websocket/WebSocketMsgServiceImpl.java +++ b/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/websocket/WebSocketMsgServiceImpl.java @@ -46,6 +46,9 @@ public class WebSocketMsgServiceImpl implements WebSocketMsgService { case "CHAT": // 单聊消息 handleChatMsg(wsMessage); break; + case "CLIENT": // 客户端信息 + setClientInfo(wsMessage); + break; case "BROADCAST": // 广播消息 handleBroadcastMsg(wsMessage); break; @@ -169,4 +172,20 @@ public class WebSocketMsgServiceImpl implements WebSocketMsgService { // 回复心跳确认 ChatWebSocketServer.sendToUser(senderId, JSON.toJSONString(new WebSocketMessage("HEARTBEAT_ACK", "pong", senderId, null, System.currentTimeMillis()))); } + /** + * 示例3:给在线用户设置动态属性(如设备类型) + */ + public void setClientInfo(WebSocketMessage wsMessage) { + String senderId = wsMessage.getSenderId(); + String data = wsMessage.getData(); + Map dataStrMap = JSON.parseObject(data, Map.class); + WebSocketUser user = ChatWebSocketServer.getOnlineUser(senderId); + if (user != null) { + for (Map.Entry entry : dataStrMap.entrySet()) { + String key = entry.getKey(); + String value =(String)entry.getValue(); + user.setDynamicAttr(key, value); + } + } + } } \ No newline at end of file diff --git a/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/websocket/notsbook b/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/websocket/notsbook index 01cc182..7367e8a 100644 --- a/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/websocket/notsbook +++ b/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/websocket/notsbook @@ -37,8 +37,8 @@ WebSocketMessage消息结构 接收者ID在指定传输目标时传入,目前暂时不使用 data 字段为消息体,都是json格式 消息举例 - {"msgType":"CHAT","data":{"instrid":"abc"},"receiverId":"LIS","timestamp":1755068400000} - {"msgType":"CHAT","data":{"instrid":"abc"}} + {"msgType":"CLIENT","data":{"instrid":"abc"},"receiverId":"LIS","timestamp":1755068400000} + {"msgType":"CLIENT","data":{"instrid":"abc"}} 消息类型约定 3 业务流程 启动服务器,自动创建websocket服务实例