Class HandleProtocolMessage
java.lang.Object
io.github.theword.queqiao.core.handle.HandleProtocolMessage
处理协议消息
这是传输无关的协议分发入口:WebSocket(以及未来的 HTTP)都复用同一套解析与路由。
生命周期与线程安全:本类由 QueQiaoRuntime 创建唯一实例并注入给各传输层
(WebsocketManager → 各 WsClient / WsServer),
因此会被多个连接、多个线程并发调用。
本类构造后即不可变:字段全部 final,
ProtocolRouter 的处理器表也只在构造阶段写入、之后只读;
各处理器实现必须无状态(见 AbstractProtocolHandler)。
因此并发调用是安全的,且不存在锁——不同连接之间不会相互串行化。
顺序说明:单个连接内的请求处理顺序由该连接的读线程串行保证, 与本类实例数量无关。
状态码语义:请求体不是合法 JSON 或为 null 时返回 400(调用方错误), 而不是把调用方错误伪装成服务端内部错误。
日志安全:debug 日志会先对 token / password 等敏感字段脱敏、再按长度截断; warn / error 日志不输出请求体内容,只输出长度。
- Since:
- 0.6.11
-
Constructor Summary
ConstructorsConstructorDescriptionHandleProtocolMessage(org.slf4j.Logger logger, com.google.gson.Gson gson, HandleApiService handleApiService, RconCommandExecutor rconCommandExecutor) -
Method Summary
Modifier and TypeMethodDescriptionhandleHttpJson(String rawJsonMessage) Http,处理JSON字符串handleWebsocketJson(org.java_websocket.WebSocket webSocket, String rawJsonMessage) WebSocket入口,处理JSON字符串parseAndHandle(BasePayload basePayload) 业务处理核心:接收原始 JSON 字符串并解析与处理
-
Constructor Details
-
HandleProtocolMessage
public HandleProtocolMessage(org.slf4j.Logger logger, com.google.gson.Gson gson, HandleApiService handleApiService, RconCommandExecutor rconCommandExecutor)
-
-
Method Details
-
handleWebsocketJson
WebSocket入口,处理JSON字符串- Parameters:
webSocket- WebSocket连接rawJsonMessage- 收到的JSON字符串- Returns:
- 响应的JSON字符串
-
handleHttpJson
Http,处理JSON字符串保留入口:当前版本尚未接入 HTTP 传输层,本方法暂无调用方。 它是有意保留的扩展点——协议分发与传输方式无关, 后续接入 HTTP 时应直接复用本入口,而不是另起一套解析与路由。 因此请勿将其当作"死代码"清理。
- Parameters:
rawJsonMessage- 收到的JSON字符串- Returns:
- 响应的JSON字符串
-
parseAndHandle
业务处理核心:接收原始 JSON 字符串并解析与处理- Returns:
- Response 处理结果
-