我們都知道,目前我們最常用的協(xié)議就是http協(xié)議,因為目前的很多都是采用http進行通信的。特別是網(wǎng)站瀏覽,全都是基于http(https)通信的。
但是我們知道物聯(lián)網(wǎng)設備不同于計算機,物聯(lián)網(wǎng)設備往往是嵌入式設備,嵌入式設備往往是資源有限的設備,對于帶寬或者能耗都有一定的要求。所以臃腫的http協(xié)議,對于物聯(lián)網(wǎng)來說,不是很適合。那么什么協(xié)議適合物聯(lián)網(wǎng)應用呢?下面小生帶你了解一下MQTT協(xié)議吧!
MQTT協(xié)議
MQTT協(xié)議是由IBM開發(fā)的一個協(xié)議,基于ISO標準的在TCP/IP協(xié)議之上的應用層協(xié)議,基于發(fā)布訂閱的“輕量級”消息協(xié)議,專門為了M2M通信的協(xié)議!
那么我們需要了解MQTT協(xié)議那些關鍵點呢?
1、MQTT結(jié)構圖
,mqtt不是直接節(jié)點與節(jié)點之間進行聯(lián)系,而是通過代理進行聯(lián)系,訂閱者向代理訂閱某一信息,當發(fā)布者上傳改類型的信息給代理的時候,那么代理就會推送給訂閱者
2、服務質(zhì)量等級
(1)QoS 0:最多分發(fā)一次,不管確不確認收到。
(2)QoS 1:至少分發(fā)一次,可能會重復發(fā)送。
(3)QoS 2:只分發(fā)一次,并且確認消息到達。
3、MQTT消息類型
(1)CONNECT:連接服務端
(2)CONNACK:確認連接請求
(3)PUBLISH:發(fā)布消息
(4)PUBACK:發(fā)布確認
(5)PUBREC:發(fā)布收到(QoS2中的第一步)
(6)PUBREL:發(fā)布釋放(QoS2中的第二步)
(7)PUBCOMP:發(fā)布完成(QoS2中的第三步)
(8)SUBSCRIBE:訂閱主題
(9)SUBACK:訂閱確認
(10)UNSUBSCRIBE:取消訂閱
(11)UNSUBACK:取消訂閱確認
(12)PINGREQ:心跳請求
(13)PINGRESP:心跳響應
(14)DISCONNECT:斷開連接
如下圖所示:
MQTT 控制報文的類型