我是靠谱客的博主 英俊香菇,最近开发中收集的这篇文章主要介绍MQTT简介之三(5) MQTT协议 报文标识符,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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协议 报文标识符所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(75)

评论列表共有 0 条评论

立即
投稿
返回
顶部