MQTT輕量級物聯(lián)網(wǎng)消息推送協(xié)議
1.概念
MQTT是機器對機器(M2M)/物聯(lián)網(wǎng)(IoT)連接協(xié)議。它被設(shè)計為一個極其輕量級的發(fā)布/訂閱消息傳輸協(xié)議。對于需要較小代碼占用空間和/或網(wǎng)絡(luò)帶寬非常寶貴的遠程連接非常有用,是專為受限設(shè)備和低帶寬、高延遲或不可靠的網(wǎng)絡(luò)而設(shè)計。這些原則也使該協(xié)議成為新興的“機器到機器”(M2M)或物聯(lián)網(wǎng)(IoT)世界的連接設(shè)備,以及帶寬和電池功率非常高的移動應(yīng)用的理想選擇。例如,它已被用于通過衛(wèi)星鏈路與代理通信的傳感器、與醫(yī)療服務(wù)提供者的撥號連接,以及一系列家庭自動化和小型設(shè)備場景。它也是移動應(yīng)用的理想選擇,因為它體積小,功耗低,數(shù)據(jù)包最小,并且可以有效地將信息分配給一個或多個接收器。
2.特點
開放消息協(xié)議,簡單易實現(xiàn)
發(fā)布訂閱模式,一對多消息發(fā)布
基于TCP/IP網(wǎng)絡(luò)連接,提供有序,無損,雙向連接。
1字節(jié)固定報頭,2字節(jié)心跳報文,最小化傳輸開銷和協(xié)議交換,有效減少網(wǎng)絡(luò)流量。
消息QoS支持,可靠傳輸保證
3.應(yīng)用
MQTT協(xié)議廣泛應(yīng)用于物聯(lián)網(wǎng)、移動互聯(lián)網(wǎng)、智能硬件、車聯(lián)網(wǎng)、電力能源等領(lǐng)域。
物聯(lián)網(wǎng)M2M通信,物聯(lián)網(wǎng)大數(shù)據(jù)采集
Android消息推送,WEB消息推送
移動即時消息,例如Facebook Messenger
智能硬件、智能家具、智能電器
車聯(lián)網(wǎng)通信,電動車站樁采集
智慧城市、遠程醫(yī)療、遠程教育
電力、石油與能源等行業(yè)市場
最新消息
MQTT v5.0現(xiàn)在成為了OASIS官方標(biāo)準(zhǔn)
OASIS現(xiàn)在已經(jīng)發(fā)布了官方的MQTT v5.0標(biāo)準(zhǔn) - 這對于已經(jīng)為物聯(lián)網(wǎng)(IoT)所用的消息傳輸協(xié)議來說,這是一個改進和功能的巨大飛躍?;谠缙诘膙3.1.1標(biāo)準(zhǔn),它具有重要的更新,同時最大限度地減少與現(xiàn)有版本的不兼容性。
新版本的亮點包括:
更好的錯誤報告 - 特別是,在發(fā)布的響應(yīng)中添加了原因代碼(PUBACK / PUBREC)。MQTT起源于輸油管道沿線的傳感器等使用案例 - 如果它們的消息發(fā)布未能傳輸,則傳感器將不采取任何措施。然而,MQTT的用例現(xiàn)在要廣泛得多,如果數(shù)據(jù)沒有成功傳輸,手機上的應(yīng)用程序可能會想要警告用戶。返回代碼現(xiàn)在出現(xiàn)在所有確認(rèn)中(以及包含人類可讀錯誤診斷的可選原因字符串)。
共享訂閱 - 如果訂閱上的消息速率很高,則可以使用共享訂閱在多個接收客戶端之間對消息進行負(fù)載平衡。
消息屬性 - 消息標(biāo)題中的元數(shù)據(jù)。這些用于實現(xiàn)此列表中的其他功能,但也允許用戶定義的屬性,例如通過告知接收方使用哪個密鑰來解密消息內(nèi)容來協(xié)助消息加密
消息過期 - 如果消息無法在用戶定義的時間段內(nèi)傳遞,則可以選擇丟棄消息。
會話到期 - 如果客戶端未在用戶定義的時間段內(nèi)連接,則可以丟棄狀態(tài)(例如,訂閱和緩沖的消息)而無需進行清理。
主題別名 - 允許將消息中的主題字符串替換為單個數(shù)字,從而減少發(fā)布者重復(fù)使用相同主題時需要傳輸?shù)淖止?jié)數(shù)。
Will Delay - 如果客戶端斷開連接的時間超過用戶定義的時間段, 則允許發(fā)布消息。允許有關(guān)重要客戶端應(yīng)用程序中斷的通知, 而不會被誤報淹沒。
允許的功能發(fā)現(xiàn) - 在連接開始時,可??以傳輸最大數(shù)據(jù)包大小和(QoS> 0)消息的數(shù)量限制,以通知客戶端允許執(zhí)行的操作。