MQTT建立连接CONNECT分析 谁借莪1个温暖的怀抱¢ 2022-05-11 00:20 471阅读 0赞 #### CONNECT — 连接服务器 #### -------------------- ##### 整个帧结构 ##### > (0000) 00 0c 29 8d b5 bd 00 50 56 c0 00 08 08 00 45 00 > (0010) 00 4e 69 ca 40 00 40 06 2b 00 c0 a8 92 01 c0 a8 > (0020) 92 8d cd 86 07 5b fa e8 93 77 82 4b 86 84 50 18 > (0030) 01 00 b1 44 00 00 **10 24 00 06 4d 51 49 73 64 70** > (0040) **03 02 00 3c 00 16 6d 6f 73 71 73 75 62 2f 31 31** > (0050) **32 31 36 2d 50 6f 74 6f 59 61 6e 67** > > 注:加粗部分为MQTT协议结构 ##### 分析说明 ##### **固定报头:** 协议类型+保留位:10,其中MQTT报文控制类型为1,保留位为0,1代表类型1,即CONNECT请求. 剩余长度: 24(36),代表可变报头长度(10字节)加上有效载荷长度一共为36字节. **可变报头:** 协议名长度:00 06,代表协议名长度为6字节 协议名:4d 51 49 73 64 70 ,协议名称为:MQIsdp > 为什么不是MQTT? > 解析:这是在MQTT3.1标准中的定义,在MQTT3.1.1标准中,MQIsdp被改为了MQTT, 见 [MQTT3.1与MQTT3.1.1版的区别][MQTT3.1_MQTT3.1.1] 协议级别:03,对应于MQTT3.1版本 连接标志:02,说明 ![image][] 保持连接:00 3c (60),以秒为单位,代表客户端传输完成一个控制报文的时刻到下一个报文的时刻,两者之间允许空闲的最大时间间隔。 **有效载荷:** 可变报头中的标志决定是否包含这些字段,如果包含的话,必须按照这个顺序出现:客户端标识符,遗嘱主题,遗嘱消息,用户名,密码,客户端标识符必须存在而且必须是CONNECT报文有效载荷的第一个字段 客户端标识符长度:00 16,代表接下来的客户端标识符长度为22字节。 客户端标识符:6d 6f 73 71 73 75 62 2f 31 31 32 31 36 2d 50 6f 74 6f 59 61 6e 67(mosqsub/11216-PotoYang) [MQTT3.1_MQTT3.1.1]: https://blog.csdn.net/qq_21842575/article/details/82760457 [image]: /images/20220511/78739beab44b4a83b3ba27328d554e5d.png
还没有评论,来说两句吧...