专栏名称: HULK一线技术杂谈
HULK是360的私有云平台,丰富的一线实战经验,为你带来最有料的技术分享
目录
相关文章推荐
物道  ·  越是屁股大腿粗的女人穿起来越好看? ·  15 小时前  
言安堂  ·  暗沉、发黄、斑斑肌进!能救一个是一个! ·  23 小时前  
言安堂  ·  终于找到了白嫩一夏的方案!(送修丽可) ·  23 小时前  
时尚芭莎  ·  王俊凯:一纪年轮 ·  2 天前  
51好读  ›  专栏  ›  HULK一线技术杂谈

MQTT协议之连接

HULK一线技术杂谈  · 公众号  ·  · 2019-01-17 18:00

正文

请到「今天看啥」查看全文


可变报头

可变报头分为四个部分,分别是协议名称(Protocol Name),协议级别(Protocol Level),连接标志(Connect Flags),保持连接(Keep Alive)。

协议名称

1. 协议名是MQTT的UTF-8编码的字符串。MQTT规范的后续版本不会改变这个字符串的偏移和长度。

2. 如果协议不正确服务端断开连接。(MQTT 3.1.1)其他规范中可以有其他规范。

3. 数据包检测工具,可以使用协议名来识别MQTT流量。

协议级别

1. 使用8位来表示协议的修订版本级别。MQTT3.1.1的协议级别为4。这个也是MQTT5的由来,MQTT5的协议级别为5,故称为MQTT5。

2. 服务端收到一个自己不支持的协议级别的时候,必须返回一个returnCode为0x01的CONNACK的报文给客户端,随后服务端断开相应的连接。

连接标志

3. 服务端必须校验连接标志中的预留字段是否为0,如果不为0,必须断开该连接。

4. 清理会话标志

A. 清理会话标志的表现

a.清理会话标志为0(false)

i.如果已存在相同ClientId的会话,则必须恢复相应的会话。

ii.不存在 相同ClientId的会话,则重新创建一个新的会话。

iii.客户端 和服务端断开连接后,服务端必须保存相应的会话信息。







请到「今天看啥」查看全文