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服务实例