我们都知道,目前我们最常用的协议就是http协议,因为目前的很多都是采用http进行通信的。特别是网站浏览,全都是基于http(https)通信的。
但是我们知道物联网设备不同于计算机,物联网设备往往是嵌入式设备,嵌入式设备往往是资源有限的设备,对于带宽或者能耗都有一定的要求。所以臃肿的http协议,对于物联网来说,不是很适合。那么什么协议适合物联网应用呢?下面小生带你了解一下MQTT协议吧!
MQTT协议
MQTT协议是由IBM开发的一个协议,基于ISO标准的在TCP/IP协议之上的应用层协议,基于发布订阅的“轻量级”消息协议,专门为了M2M通信的协议!
那么我们需要了解MQTT协议那些关键点呢?
1、MQTT结构图
,mqtt不是直接节点与节点之间进行联系,而是通过代理进行联系,订阅者向代理订阅某一信息,当发布者上传改类型的信息给代理的时候,那么代理就会推送给订阅者
2、服务质量等级
(1)QoS 0:最多分发一次,不管确不确认收到。
(2)QoS 1:至少分发一次,可能会重复发送。
(3)QoS 2:只分发一次,并且确认消息到达。
3、MQTT消息类型
(1)CONNECT:连接服务端
(2)CONNACK:确认连接请求
(3)PUBLISH:发布消息
(4)PUBACK:发布确认
(5)PUBREC:发布收到(QoS2中的第一步)
(6)PUBREL:发布释放(QoS2中的第二步)
(7)PUBCOMP:发布完成(QoS2中的第三步)
(8)SUBSCRIBE:订阅主题
(9)SUBACK:订阅确认
(10)UNSUBSCRIBE:取消订阅
(11)UNSUBACK:取消订阅确认
(12)PINGREQ:心跳请求
(13)PINGRESP:心跳响应
(14)DISCONNECT:断开连接
如下图所示:
MQTT 控制报文的类型