IOT-MQTT协议-控制数据包-SUBACK

本文围绕MQTT协议的SUBACK订阅确认展开,介绍服务器用SUBACK数据包确认接收和处理SUBSCRIBE数据包,包含返回代码列表指定最大QoS级别。还详细阐述了固定标题、变量头和有效载荷的内容,以及允许的返回码等信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

3.9 SUBACK - 订阅确认

服务器将SUBACK数据包发送给客户端以确认接收和处理SUBSCRIBE数据包。

 

SUBACK数据包包含一个返回代码列表,用于指定SUBSCRIBE请求的每个Subscription中授予的最大QoS级别。

3.9.1 Fixed Header 固定标题

图3.24 - SUBACK数据包固定标头

7

6

5

4

3

2

1

0

字节1

MQTT控制包类型(9)

保留的

 

1

0

0

1

0

0

0

0

字节2

剩余长度

 

剩余长度字段

这是变量头的长度(2个字节)加上有效载荷的长度。

3.9.2 Varliable Header 变量头

变量头包含来自正被确认的SUBSCRIBE分组的分组标识符。图3.25-下面的变量头格式说明了变量头的格式

图3.25 - SUBACK数据包变量头

7

6

4

3

2

1

0

字节1

包标识符MSB

字节2

包标识符LSB

3.9.3 Payload 有效载荷

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

图3.26 - 下面的有效载荷格式说明了在有效载荷中以字节编码的返回码字段。

图3.26 - SUBACK数据包有效载荷格式

7

6

4

3

2

1

0

 

返回代码

字节1

X

0

0

0

0

0

X

X

允许的返回码:

0x00 - 成功 - 最大QoS 0  
0x01 - 成功 - 最大QoS 1  
0x02 - 成功 - 最大QoS 2  
0x80 - 失败                                                                                                             

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

3.9.3.1有效载荷非规范性示例

图3.27 - 有效载荷字节格式非规范性示例 显示了表3.6中简要描述的SUBACK数据包的有效载荷- 有效载荷非规范示例

表3.6 - 有效载荷非规范性示例

成功 - 最大QoS 0 

0

成功 - 最大QoS 2 

2

失败 

128

图3.27 - 有效载荷字节格式非规范性示例

 

描述

7

6

5

4

3

2

1

0

字节1

成功 - 最大QoS 0 

0

0

0

0

0

0

0

0

字节2

成功 - 最大QoS 2 

0

0

0

0

0

0

1

0

字节3

失败

1

0

0

0

0

0

0

0

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值