MQTT控制报文格式 -- SUBACK – 订阅应答

发布时间 2023-10-17 09:00:02作者: aimigi

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