MQTT协议
MQTT协议的概念
MQTT协议,全称Message Queue Telemetry Transport,即消息队列遥测传输协议,是一种基于发布/订阅的轻量级通讯协议,适用于条件较差的网络环境,如:网络延迟高、带宽低、通信讯号不稳定等情况。
MQTT协议的特点
-
构建于TCP/IP协议之上
TCP/IP参考模型可分为四层:应用层、传输层、网络层、链路层。TCP、UDP协议均属于传输层,MQTT运行与TCP之上,属于应用层协议,只要支持TCP/IP协议栈的地方都可应用MQTT。 -
基于C-S架构的消息发布/订阅
提供一对多的消息发布,作为客户端之间的中间介质,解除应用程序的耦合。 -
对负载内容屏蔽的消息传输
-
使用TCP连接进行数据推送
-
三种消息发布QoS
- QoS 0:至多一次。服务器只推送1次,至于客户端是否收到,收到的消息是否正确,数据是否有所丢失,都不管。
- QoS 1:至少一次。客户端收到服务器的推送后要回复一个PUBACK告诉服务器已收到,否则服务器会认为Client未收到推送,隔一段时间后重新发送,直到对方回复PUBACK。
- QoS 2:只发一次。保证数据包到达目的地,且不会出现重复。服务器发送数据包,客户端接收后回复PUBREC(收到发布消息)报文,服务器存储PUBREC中的报文标识符ÿ