测试环境可以看之前的文章:MQTT学习【一】安装.
有位大神写了单片机上TCP与MQTT之间的转换。对于我理解协议有很大帮助:https://www.cnblogs.com/yangfengwu/p/9124299.htm
MQTT协议的值以及流向
服务质量
Qos0:至多分发一次
Qos1:最少分发一次
Qos2:只分发一次
一、MQTT连接协议。wireshark抓取到的包如下:
在完成了TCP的三次握手之后,发起了连接请求。我们打开connect command的包
请求包中包含了请求的数据,已经账户密码的信息。我这里客户端MQTTFX使用的是HTTP直连方式,所以看到信息是明文状态。之后服务端答复了ACK就连接成功了
二、心跳包(长连接的一种检测手段,MQTT是一种长连接)