Appearance
通信协议
心跳包
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
+---------------------------------------------------------------+-+-------------+---------------------------------------------------------------+
| size |h| extcode | heartbeat time (ns) |
+---------------------------------------------------------------+-+-------------+---------------------------------------------------------------+
size: 4 bytes
- 包长度位
- 长度固定为4字节,且不可修改
header: 1 bytes
包头标识
长度固定为1字节,且不可修改
h: 1 bit
- 心跳标识位
- 长度固定为1位,且不可修改
- 心跳包固定为%x1
extcode: 7 bit
- 扩展操作码位
- 长度固定为7位,且不可修改
- 保留位
heartbeat time: 8 bytes
- 服务端下行心跳时间
- 上行心跳包无需携带心跳数据,下行心跳包默认携带8 bytes的服务器时间(ns)
- 此协议数据由etc.packet.heartbeatTime配置参数进行控制
数据包
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
+---------------------------------------------------------------+-+-------------+-------------------------------+-------------------------------+
| size |h| extcode | route | seq |
+---------------------------------------------------------------+-+-------------+-------------------------------+-------------------------------+
| message data ... |
+-----------------------------------------------------------------------------------------------------------------------------------------------+
size: 4 bytes
- 包长度位
- 长度固定为4字节,且不可修改
header: 1 bytes
包头标识
长度固定为1字节,且不可修改
h: 1 bit
- 心跳标识位
- 长度固定为1位,且不可修改
- 数据包固定为%x0
extcode: 7 bit
- 扩展操作码位
- 长度固定为7位,且不可修改
- 保留位
route: 1 bytes | 2 bytes | 4 bytes
- 消息路由号
- 长度默认为2字节,可通过打包器配置etc.packet.routeBytes进行修改
- 此参数由业务打包器packet.Packer打包,服务器开发者和客户端开发者均要关心此参数
seq: 0 bytes | 1 bytes | 2 bytes | 4 bytes
- 消息序列号
- 长度默认为2字节,可通过打包器配置etc.packet.seqBytes进行修改
- 可通过将打包器配置etc.packet.seqBytes设置为0来屏蔽使用消息序列号
- 消息序列号常用于请求/响应模型的消息对儿的确认
- 此参数由业务打包器packet.Packer打包,服务器开发者和客户端开发者均要关心此参数
message data: n bytes
- 消息数据
- 长度默认为5000字节,可通过打包器配置etc.packet.bufferBytes进行修改
- 建议较大的消息包通过拆包的方式来进行发送,切勿盲目扩大消息数据的长度
- 此参数由业务打包器packet.Packer打包,服务器开发者和客户端开发者均要关心此参数