概述
1、报文标识符
①隶属于报文结构中可变报头,只有9个报文需要报文标识符
②占用2个字节
③3/4/5/6/7/8/9/10/11号报文有报文标识符,其中注意等级0的3号PUBLISH报文,不含有报文标识符。
④ 报文标识符用来区分报文,特别是在重发的报文中用来标识是否是同一个报文,并在需要应答的场景中用于确定是对哪个发送报文的应答。可变报头的报文标识符(Packet Identifier)字段存在于在多个类型的报文里。
2、报文标识符文档
3、报文标识符的主从概念
等级1 PUBLISH(主)----(从)PUBACK 报文标识符必须一样
等级2 PUBLISH(主)----(从)PUBREC ----(从)-PUBREL---(从)PUBCOMP 报文标识符必须一样
SUBSCRIBE (主) ---- SUBACK (从)
UNSUBSCRIBE (主) ---- UNSUBACK (从)
从报文的报文标识符必须与主报文的报文标识一致
4、重发报文标识符 MQTT协议规定
如果一个客户端要重发这个特殊的控制报文,在随后重发那个报文时, 它必须使用相同的标识符。
PUBACK, PUBREC, PUBREL报文必须包含与最初发送的PUBLISH报文相同的报文标识符。类似地,SUBACK和UNSUBACK必须包含在对应的SUBSCRIBE和UNSUBSCRIBE报文中使用的报文标识符。
客户端和服务端彼此独立地分配报文标识符。因此,客户端服务端组合使用相同的报文标识符可以实现并发的消息交换。
5、客户端发送的报文标识符顺序,服务器应答并不会按照报文标识符的顺序应答,类似于TCP/IP的时间戳和序列号的概念
最后
以上就是英俊香菇为你收集整理的MQTT简介之三(5) MQTT协议 报文标识符的全部内容,希望文章能够帮你解决MQTT简介之三(5) MQTT协议 报文标识符所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复