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格式 消息举例 {"msgType":"CHAT","data":{"instrid":"abc"},"receiverId":"LIS","timestamp":1755068400000} {"msgType":"CHAT","data":{"instrid":"abc"}} 消息类型约定 3 业务流程 启动服务器,自动创建websocket服务实例 客户端启动,连接websocket服务器,发送约定身份参数(非必须) 客户端等待消息中... 服务器创建消息服务业务层 定时器注册指定服务为定时任务,并声明循环周期(单线程服务,一类业务只创建一个消息服务器端) 消息服务程序触发消息规则,给指定客户端发送消息 客户端收到消息,做相应的处理 4 应用范例 UserService 提供基本的消息服务方法, 常用的操作客户端方法直接操作ChatWebSocketServer完成 包括调阅客户端列表,修改客户端附属属性,过滤,查找,给目标客户端发送消息,以及处理收到的消息