关于MQTT协议的说明
关于MQTT协议的说明
xiaocui911 发表于1年前
关于MQTT协议的说明
  • 发表于 1年前
  • 阅读 22
  • 收藏 0
  • 点赞 0
  • 评论 0

移动开发云端新模式探索实践 >>>   

摘要: 主要是解析MQTT中协议包的内容,也是根据官方文档来的,主要为了以后看着方便。

我们知道,QQ物联网是基于一种发布和订阅的一种通信协议,在我看来这或者就是MQTT协议,虽然我并没有去了解他。 首先,发布所在的平台一般是服务器端,而订阅的平台一般是设备端。他们主要是通过网络而发送消息的一种通信协议。server 端和client 端建立起来的连接统称会话(session),各种平台可以通过主题(TOPIC)来建立不同的通信。这些基本的先解释下,下面有关的术语就不再叙述。 1,数据格式 数据包的前两个字节表示这个包的大小,后面紧接着是UTF-8编码的内容。输入图片说明 2,MQTT控制包格式 他主要分为三个部分:固定的头部、可变的部分、以及负载。 2.1固定的头部 他主要包括控制包的类型以及相应的标记,剩下的就是保留部分。这里控制包类型主要是如下图所示: 输入图片说明 控制包的类型只是占了一个字节的高四位,而低四位主要是标记,这个标记主要是为了以后扩展用。 后面的字节就是保留字节了,主要是可变部分以及负载。 2.2可变部分 这一部分可变主要是MQTT协议对这一部分没有也是能正常通信的。变量的内容取决于数据包类型。可变报头的分组标识符字段在几种分组类型中是常见的。他们主要是:PUBLISH (where QoS > 0), PUBACK, PUBREC, PUBREL, PUBCOMP, SUBSCRIBE, SUBACK, UNSUBSCRIBE, UNSUBACK. SUBSCRIBE,UNSUBSCRIBE和PUBLISH(在QoS> 0的情况下)控制包必须包含非零16位数据包标识符。每当客户端发送这些类型之一的新数据包时,它必须为其分配一个当前未使用的数据包标识符。如果客户端重新发送特定的控制分组,则它必须在该分组的后续重新发送中使用相同的分组标识符。在客户端处理相应的确认分组后,分组标识符变得可用于重用。如下图所示:输入图片说明 2.3负载部分 如下图所示,列出了有效载荷包: 输入图片说明

今天就先写一部分,剩下的部分比较重要,需要再多揣摩几次再发吧。

  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 6
博文 15
码字总数 14765
×
xiaocui911
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: