3.4 发布确认( PUBACK)
发布确认是对QoS1发布包的响应。
3.4.1 发布固定头
剩余字节长度
它为可变头长度,编码为可变字节整数。
3.4.2 发布可变头(PUBACK Variable Header)
发布确认可变头按顺序包含如下域:
- 要确认的发布包的包标识。
- 发布确认消息码
- 属性
3.4.2.1 发布确认消息码(PUBACK Reason Code)
可变头字节3位发布确认消息码。如果剩余长度为2,则无消息码,默认为0x00(成功)。
客户端或服务端发送发布确认包必须使用其中一个消息码。
消息码和属性长度可缺省,即默认消息码为0x00(Success)及没有属性,这种情况剩余长度为2.
3.4.2.2. 发布确认属性(PUBACK Property)
3.4.2.2.1 属性长度(Property Length)
位于PUBACK可变头的属性长度编码为可变头整数,如果剩余字节数小于4,则无属性长度,默认为0.
3.4.2.2.2. 消息字符串(Reason String)
31(0x1F), 字节,消息字符串标识,后跟UTF-8编码字符串代表响应相关消息。
该消息为可直接阅读消息,无需解码。
3.4.2.2.3 用户属性(User Property
38(0x26),字节,用户属性标识,后跟UTF-8字符串对。
该属性可提供进一步诊断信息。
当发布确认包要超过接收者的最大包小时,发送者不可发送次属性。
用户属性可包含多次代表多个名称键值对,同样名称也可出现多次