我們都知道,目前我們最常用的協議就是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 控制報文的類型















