MQTT协议_报文标识符
2017-11-15 12:56
141 查看
2.2.1 报文标识符
报文标识符用来区分报文,特别是在重发的报文中用来标识是否是同一个报文,并在需要应答的场景中用于确定是对哪个发送报文的应答。可变报头的报文标识符(Packet Identifier)字段存在于在多个类型的报文里。很多控制报文的可变报头部分包含一个两字节的报文标识符字段。这些报文是PUBLISH(QoS>0时), PUBACK,PUBREC,PUBREL,PUBCOMP,SUBSCRIBE,SUBACK,UNSUBSCIBE,UNSUBACK。
SUBSCRIBE,UNSUBSCRIBE和PUBLISH(QoS大于0)控制报文必须包含一个非零的16位报文标识符(Packet Identifier)。客户端每次发送一个新的这些类型的报文时都必须分配一个当前未使用的报文标识符。如果一个客户端要重发这个特殊的控制报文,在随后重发那个报文时,它必须使用相同的标识符。当客户端处理完这个报文对应的确认后,这个报文标识符就释放可重用。QoS 1的PUBLISH对应的是PUBACK,QoS
2的PUBLISH对应的是PUBCOMP,而SUBSCRIBE或UNSUBSCRIBE对应的分别是SUBACK或UNSUBACK。发送一个QoS0的PUBLISH报文时,相同的条件也适用于服务端?
QoS设置为0的PUBLISH报文不能包含报文标识符。
PUBACK, PUBREC, PUBREL报文必须包含与最初发送的PUBLISH报文相同的报文标识符。类似地,SUBACK和UNSUBACK必须包含在对应的SUBSCRIBE和UNSUBSCRIBE报文中使用的报文标识符。
客户端和服务端彼此独立地分配报文标识符。因此,客户端服务端组合使用相同的报文标识符可以实现并发的消息交换。
版权所有,转载请注明出处:http://www.junsion.icoc.bz/ by 小丑
相关文章推荐
- mqtt协议-broker之moqutte源码研究三之SUBSCRIBE报文处理
- mqtt协议-broker之moqutte源码研究五之UNSUBSCRIBE与DISCONN报文处理
- mqtt协议-broker之moqutte源码研究二之Connect报文处理
- mqtt协议-broker之moqutte源码研究四之PUBLISH报文处理
- 报文协议标识符
- MQTT协议学习及实践
- 互联网推送服务原理:长连接+心跳机制(MQTT协议)
- Q / GDW 376.1—2009电力用户用电信息采集系统通信协议报文解析示例
- MQTT协议笔记之发布流程
- 详解IGMP(Internet组管理协议)报文及协议
- MQTT 3.1协议非严肃反思录
- 详解IGMP(Internet组管理协议)报文及协议
- TCP,IP详解,卷一:协议学习笔记之第六章 ICMP: Internet控制报文协议
- HTTP协议之报文详解
- Android基于MQTT协议实现的推送功能
- TCP/IP详解,卷1:协议,第六章:ICMP,Internet控制报文协议
- MQTT协议设计简介
- MQTT协议详解
- MQTT协议(推送)学习
- Http协议-报文