通信协议
了解 SIREN 的客户端-服务端通信协议
开发参考
本页面主要面向开发者,介绍 SIREN 客户端与服务端之间的通信协议细节。
标准消息
type Header struct {
MsgType uint8
DataLen uint64
}
type Message struct {
Header Header
Data []byte
}即:1 字节消息类型 | 8 字节消息长度 | 消息内容。
客户端连接建立后的第一帧必须是 MsgClientHello,其中包含稳定 agentId、客户端 OS 和当前插件列表。服务端基于该帧注册客户端、恢复备注,并初始化插件显示;后续插件安装、卸载、更新或启停变化仍通过 MsgPluginRegister 刷新完整插件列表。
Raw 消息
顾名思义,Raw 消息无固定格式,客户端发送消息至服务端后,如果消息的首字节不在标准消息类型标识范围内则被视为 Raw 消息,读取至 \n 并直接打印,随后切换回读取标准消息的模式。
主要适用于客户端日志直传场景。
各命令交互流程
以下时序图展示了各命令在客户端与服务端之间的交互过程。
recon
远程 recon 与 upload 都采用“命令响应帧 + MsgFile 内容帧”的边界。服务端会校验第二帧必须是 MsgFile;如果收到其他消息类型,会关闭当前连接,避免把错误帧继续当作协议流解析。