SUBACK

3.0 CONTENT – 目录

3.9 SUBACK - 订阅确认 Subscribe acknowledgement)

服务端发送SUBACK到客户端以确认接受和处理 SUBSCRIBE报文。

SUBACK报文包含一个返回码列表,它指定了SUBSCRIBE请求的每个订阅中授权的最大QoS级别。

3.9.1 固定报头 Fixed header

图例 3.24 - SUBACK报文固定报头

位 Bit76543210byte 1MQTT控制数据包类型(9) MQTT Control Packet Type (9)保留位 Reserved10010000byte 2剩余长度 Remaining Length

剩余长度字段

=可变报头的长度(2字节)+有效负载的长度

3.9.2 可变报头 Variable header

可变报头包含与等待被确认的SUBSCRIBE报文相同的报文标识符。图例3.25–SUBACK报文可变报头说明了可变报头格式:

图例3.25-SUBACK报文可变报头

位 Bit76943210byte 1报文标识符的最高有效字节 Packet Identifier MSBbyte 2报文标识符的最低有效字节 Packet Identifier LSB

3.9.3 有效负载 Payload

有效负载包含返回码列表。每个返回码对应与等待确认的SUBSCRIBE报文中主题过滤器。==SUBACK报文中返回码的顺序必须与SUBSCRIBE报文中的主题过滤器的顺序相匹配。==[MQTT-3.9.3-1]

图3.26-SUBACK报文有效负载格式说明了有效负载中单字节编码的返回码。

图3.26-SUBACK报文有效负载格式

位 Bit76943210返回码 Return Codebyte 1X00000XX

允许的返回码: 0x00 - 成功 - 最大 QoS 0 0x01 - 成功 - 最大 QoS 1 0x02 - 成功 - 最大 QoS 2 0x80 - 失败

==除0x00,0x01,0x02和0x80以外的SUBACK返回码被保留,并不得使用。==[MQTT-3.9.3-2]

3.9.3.1 有效负载的非规范示例 Payload non normative example

图3.27有效负载的字节格式的非规范示例显示了表3.6-有效负载的非规范示例中描述的SUBACK报文的有效负载。

表3.6-有效负载的非规范示例

成功 - 最大QoS 0 Success - Maximum QoS 00成功 - 最大QoS 2 Success - Maximum QoS 22失败 Failure128

图3.27有效负载的字节格式的非规范示例

描述 Description76743210byte 1成功 - 最大QoS 0 Success - Maximum QoS 000000000byte 2成功 - 最大QoS 2 Success - Maximum QoS 200000010byte 2失败 Failure10000000

Last updated