物联网报文的基本内容

报文描述流向序列固定报头可变报头负载
CONNECT 客户端请求与服务器连接单向C->S1
CONNACK服务端确认连接建立单向S->C2
PUBLISH发布消息双向C<->S3
PUBACK收到发布消息确认(QoS1等级)双向C<->S4
PUBREC发布消息收到(QoS2等级)双向C<->S5
PUBREL发布消息释放(QoS2等级)双向C<->S6
PUBCOMP发布消息完成(QoS2等级)双向C<->S7
SUBSCRIBE订阅请求单向C->S8
SUBACK订阅确认单向S->C9
UNSUBSCRIBE取消订阅单向C->S10
UNSUBACK取消订阅确认单向S->C11
PING客户端发送PING(保活)命令单向C->S12
PINGGRSPPING命令回复单向S->C13
DISCONNECT断开连接单向C->S14

红色字体:双向发布消息均可收到;

CONNECT :客户端请求与服务器连接

        1、固定报头2个字节

                ① 第一个表示序列号(规定好了)(10)

                ② 第二个表示可变报头+负载字节的数量

        2、可变报头10个字节

                ① 协议名:6个字节(规定好了)( 00 04 4D 51 54 54)

                        00 04:表示协议名字大小4个字节;

                        4D 51 54 54:表示 MQTT;

                ② 协议级别:1个字节(规定好了)(04)     

                ③ 连接标志:1个字节(规定好了)(C2)

                        

                        bit7:有没有用户名(置1:存在用户名) 

                        bit6:有没有密码(置1:存在密码) 

                        bit5:置0(很难理解的一个东西,不需要去尝试理解,会配置就可以了)

                        bit4-3:都置0,选择QoS0的传送数据的方式,服务器对这种方式反应最快

                        bit2:置0(很难理解的一个东西,不需要去尝试理解,会配置就可以了)

                        bit1:置0(很难理解的一个东西,不需要去尝试理解,会配置就可以了)

                        bit0:必须置0,标志位,否则服务器会直接断开连接

                 ④ 保持连接:2个字节,表示保持连接时间大小, 规定好了(00 64)表示100秒

                       

            3、负载有n个字节(按负载包括内容大小)

                 ① 客户端ID: 客户端ID数量大小(两个字节)+客户端ID;(字节数=2+客户端ID)

                 ② 用户名: 用户ID数量大小(两个字节)+用户名;           (字节数=2+用户名)

                 ③ 密码: 用户ID数量大小(两个字节)+密码;                   (字节数=2+密码)

                 (用户ID,用户名,密码全部都得转化成十六进制) 

     客户端请求与服务器连接时:固定报头+可变报头+负载(串起来)一起发送出去;

SUBSCRIBE:订阅请求

         1、固定报头2个字节

                ① 第一个表示序列号(规定好了)(82)

                ② 第二个表示可变报头+负载字节的数量

        2、可变报头2个字节(规定好了)(00 0A)

        3、负载有n个字节(主题过滤器+服务质量要求)

                ① 主题过滤器(Topic):设备名称字节数+设备名称

                ② 服务质量要求(1个字节):也就是QoS要求,设为00

      客户端发出订阅请求时:固定报头+可变报头+负载(串起来)一起发送出去;

 PUBLISH:发布消息(客户发送到服务端)

          1、固定报头2个字节

                ① 第一个表示序列号(规定好了)(30)

                ​​​​​​​        

                ② 第二个表示可变报头+负载字节的数量

        2、可变报文n个字节

                主题名(Topic):设备名称字节数+设备名称+00(QoS0模式)

        3、负载:数据的内容和格式是应用特定的

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐