58 lines
2.3 KiB
Plaintext
Raw Normal View History

2025-11-27 19:07:55 +08:00
websocket消息服务器结构说明
1.核心框架
ChatWebSocketServer
主要作用:提供底层的客户端连接管理,消息的发送与接收,以及客户端身份信息的修改
WebSocketMessage
说明:消息结构标准实体类
WebSocketUser
说明:客户端列表属性实体类
WebSocketMsgService
说明:WebSocket消息处理业务接口
WebSocketMsgServiceImpl
说明:WebSocket消息处理业务实现类
RetryMsgService
说明:消息重试服务,发送失败重发,最多3次
RetryMsgTask
说明:定时器服务器,增加定时业务服务的地方
2,协议约定
消息服务单实例,避免重复实例化错误
消息服务器地址/ws/msgserver/{SID}
SID为客户端唯一ID,约定使用浏览器指纹
WebSocketMessage消息结构
// 消息类型(如CHAT/NOTICE/ORDER/HEARTBEAT)
private String msgType;
// 业务数据(JSON字符串,可解析为对应业务DTO)
private String data;
// 发送者ID(可选,也可从WebSocket连接中获取)
private String senderId;
// 接收者ID(可选,单聊/广播区分)
private String receiverId;
// 消息时间戳
private Long timestamp;
消息时间戳必传,目前代码直接默认了
重点字段msgType,申明发送的是什么消息
发送者ID不需要传,自动获取
接收者ID在指定传输目标时传入,目前暂时不使用
data 字段为消息体,都是json格式
消息举例
2025-11-27 19:26:16 +08:00
{"msgType":"CLIENT","data":{"instrid":"abc"},"receiverId":"LIS","timestamp":1755068400000}
{"msgType":"CLIENT","data":{"instrid":"abc"}}
2025-11-27 19:07:55 +08:00
消息类型约定
3 业务流程
启动服务器,自动创建websocket服务实例
客户端启动,连接websocket服务器,发送约定身份参数(非必须)
客户端等待消息中...
服务器创建消息服务业务层
定时器注册指定服务为定时任务,并声明循环周期(单线程服务,一类业务只创建一个消息服务器端)
消息服务程序触发消息规则,给指定客户端发送消息
客户端收到消息,做相应的处理
4 应用范例
UserService
提供基本的消息服务方法,
常用的操作客户端方法直接操作ChatWebSocketServer完成
包括调阅客户端列表,修改客户端附属属性,过滤,查找,给目标客户端发送消息,以及处理收到的消息