订阅确认包是有服务端发给客户端以确认订阅包的接收及处理。

订阅确认包含消息码列表。

3.9.1 订阅确认固定头

3.9.1 订阅确认(SUBACK) - 图1

剩余长度域

剩余长度域为可变头和负荷的长度,编码为可变字节长度。

3.9.2 订阅确认可变头

订阅确认包按顺序包含如下域:

  1. 待确认订阅包的包标识。
  2. 属性

3.9.1 订阅确认(SUBACK) - 图2

3.9.2.1.1 订阅确认属性

3.9.2.1.1 属性长度

订阅确认包属性长度编码为可变字节长度。

3.9.2.1.2 消息字符串

31(0x1F),字节,消息字符串标识,后接UTF-8编码字符串,以说明此响应的原因。

该字符串必须为人可直接阅读。

3.9.2.1.3 用户属性(User Property)

38(0x26),字节,用户属性标识,后接UTF-8字符串对。该属性可用户提供附加的诊断信息。

用户属性可允许多次包含以代表多个名称-值对。

3.9.3 订阅确认负荷

负荷包含一系列消息码。每个消息对应一个确认中的订阅包的标题过滤器。

订阅确认包中的消息码属性必须与订阅包中标题过滤器顺序一致。

3.9.1 订阅确认(SUBACK) - 图3

3.9.1 订阅确认(SUBACK) - 图4