关于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负载部分 以下图所示,列出了有效载荷包: 输入图片说明服务器

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

相关文章
相关标签/搜索