SUBACK 数据包由服务器发送到客户端以确认 SUBSCRIBE 数据包的接收和处理。
SUBACK 数据包包含返回代码列表,指定在 SUBSCRIBE 请求的每个订阅中授予的最大 QoS 级别
1. 固定包头 Fixed header
固定包头的剩余长度= 可变包头(2字节)+ Payload 长度
Bit |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
byte 1 |
MQTT Control Packet type (9) |
Reserved |
||||||
|
1 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
byte 2 |
Remaining Length |
2. 可变包头 Variable header
SUBACK 消息的可变包头用来传输2个字节的数据包标识符 PacketIdentifier
Bit |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
byte 1 |
Packet Identifier MSB |
|||||||
byte 2 |
Packet Identifier LSB |
3. 载荷Payload
Payload 包含返回代码列表。 每个返回代码对应于被确认的订阅数据包中的主题过滤器。 SUBACK 数据包中返回码的顺序必须与 SUBSCRIBE 数据包中主题过滤器的顺序匹配
Bit |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
Return Code |
|||||||
byte 1 |
X |
0 |
0 |
0 |
0 |
0 |
X |
X |
返回码如果bit7=1 表示订阅失败,可能的订阅返回码如下
0x00 - Success - Maximum QoS 0
0x01 - Success - Maximum QoS 1
0x02 - Success - Maximum QoS 2
0x80 - Failure