消息类型和消息协议

消息类型

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
public enum Command {
HEARTBEAT(1), // 心跳
HANDSHAKE(2), // 握手
LOGIN(3),
LOGOUT(4),
BIND(5), // 绑定用户
UNBIND(6), // 解绑用户
FAST_CONNECT(7), // 快速重连
PAUSE(8),
RESUME(9),
ERROR(10), // 错误消息
OK(11), // 成功消息
HTTP_PROXY(12), // HTTP代理
KICK(13), // 踢人
GATEWAY_KICK(14),
PUSH(15), // 推送
GATEWAY_PUSH(16),
NOTIFICATION(17),
GATEWAY_NOTIFICATION(18),
CHAT(19),
GATEWAY_CHAT(20),
GROUP(21),
GATEWAY_GROUP(22),
ACK(23),
UNKNOWN(-1);
}

消息协议

  • mpush使用的为自定义私有协议,定长Header + body, 其中header部分固定13个字节。
  • 心跳固定为一个字节,值为 -33。
名称 类型 长度 说明
length int 4 表示body的长度
cmd byte 1 表示消息协议类型
checkcode short 2 是根据body生成的一个校验码
flags byte 1 表示当前包启用的特性,比如是否启用加密,是否启用压缩
sessionId int 4 消息会话标识用于消息响应
lrc byte 1 纵向冗余校验,用于校验header
body byte 不固定 消息内容
------ 本文结束 感谢您的阅读 ------