MQTT协议内容1
Wirshop
基于TCP/IP协议之上的


后续字节的个数
后续发布心跳请求的时候,只需要把消息类型12,
0-255,一共256种可能
1、Retain 是否进行消息的保留,0-1,一个位1:服务端需要存储信息
2、Qos:服务质量,两个位

AtMostOnce:0、最多一次:质量差,甩锅
AtLeastOnce:1、至少一次,至多无限,可能很多次,保证收到,确定收到回复为止

有发有回,中途断掉回重发一次
ExactlyOnce:2、有且仅有一次
两次确认的过程
1、你收到信了吗?--收到了
2、你确认收到了吗?--收到了

Packget Identifier
id如果重复,就退回,不做任何处理,不会重复处理多次
3、DUP重发次数
错误的时候重发
设置为1,代表重发,默认为0
4、消息类型
功能码
14种。3.0
5.0有15种

1-15都用了,没法扩展

MQTT长度就是4
MQISDP就是6
两个字节,最长65535长度,有点浪费,太长前面固定报文长度不支持,最多255
4代表3.1.1的标准
Keep Alive长连接时间,100秒
尽量保证连接状态,
也有可能断掉,服务端也可能踢掉
两个操作:订阅/发布,就是两个动作,要保证在100秒之内
只订阅,不发布的,100秒之后可能被踢掉
每隔一段时间发送一个空包,心跳请求,返回心跳确认
本身没有动作,而是用心跳来弥补动作
抓包工具会抓到,ping
N+2连接标志

X:没什么用,保留字段
clean session :session就是会话,保存信息,是否保存前一个状态,一般设置1存储
Will Flag:是否保存, 前两个信息Will Retain和Qos,其实两个和前面头重复,也有些冗余
协议建议:以最小值为准
Qos两位四种值,11没有用,00代表0,01代表1,10代表2
1的话,都可以设置
0的时候,前面两个值必须为0,协议规定的,也可自己处理
密码标记
用户名标记0:不使用,1使用
浙公网安备 33010602011771号