websocket消息服务器模块
This commit is contained in:
parent
805d9a2ffa
commit
8a5921f35d
@ -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<String, Object> dataStrMap = JSON.parseObject(data, Map.class);
|
||||
WebSocketUser user = ChatWebSocketServer.getOnlineUser(senderId);
|
||||
if (user != null) {
|
||||
for (Map.Entry<String, Object> entry : dataStrMap.entrySet()) {
|
||||
String key = entry.getKey();
|
||||
String value =(String)entry.getValue();
|
||||
user.setDynamicAttr(key, value);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -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服务实例
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user