2.1 KiB
websocket通讯格式逻辑说明
消息体有四种格式
1. 主机发送的请求 (0x01)
2. 服务端对主机请求的响应 (0x02)
3. 服务端对主机的消息推送 (0x03)
4. 主机对服务器推送消息的响应 (0x04)
消息体的格式说明
<<消息体类型/1byte, PacketId/4byte, Packet/任意长度>>
特殊说明
- 服务器端处理异常时,直接关闭websocket连接
消息类型说明
register消息,
请求
<<0x01, PacketId:4, Method:1, Body:任意长度>>
PacketId: 4字节整数, 值必须大于0; Method: 0x00 Body: {uuid: string, salt: string, username: string, token: string}, json序列化后的二级制数据,明文
响应
<<0x02, PacketId:4, Reply>> Reply: {code: 1, message: "ok"}
create_session消息
请求
<<0x01, PacketId:4, 0x01, PubKey:任意长度(公钥信息)>>
PacketId: 4字节整数, 值必须大于0;
响应
<<0x02, PacketId:4, Reply>> Reply: {a: bool, aes: "服务器生成的aes的值"}
data数据上传(无响应)
<<0x01, PacketId:4, 0x02, Body:任意长度>>
PacketId: 4字节整数, 值为0;
ping数据上传(无响应)
<<0x01, PacketId:4, 0x03, Body:任意长度>>
PacketId: 4字节整数, 值为0; Body: 公钥信息
inform数据上传(无响应)
<<0x01, PacketId:4, 0x04, Body:任意长度>>
PacketId: 4字节整数, 值为0; Body: 公钥信息
feedback_step数据上传(无响应)
<<0x01, PacketId:4, 0x05, Body:任意长度>>
PacketId: 4字节整数, 值为0; Body: 公钥信息
feedback_result数据上传(无响应)
<<0x01, PacketId:4, 0x06, Body:任意长度>>
PacketId: 4字节整数, 值为0; Body: 公钥信息
data北向数据上传 (无响应)
微服务产生的数据,点位信息为主机的点位信息
<<0x01, PacketId:4, 0x08, 0x00, Body:任意长度>> PacketId: 4字节整数, 值为0;
终端设备产生的数据,点位信息为设备信息点位信息
<<0x01, PacketId:4, 0x08, Type:1byte, Body:任意长度>> PacketId: 4字节整数, 值为0; Type: 第一bit为1,后7个bit标识后面的device_uuid的长度, 即: <<1:1, Len:7>>, 总共8个bit