天天看點

MQTT

MQTT(消息隊列遙測傳輸)是​​ISO​​ 标準(ISO/IEC PRF 20922)下基于​​釋出​​/​​訂閱​​範式的消息協定。它工作在 TCP/IP協定族上,是為​​硬體性能​​低下的遠端裝置以及網絡狀況糟糕的情況下而設計的釋出/訂閱型消息​​協定​​,為此,它需要一個​​消息中間件 ​​。

MQTT是一個基于​​用戶端​​-​​伺服器​​的消息釋出/訂閱傳輸協定。MQTT協定是輕量、簡單、開放和易于實作的,這些特點使它适用範圍非常廣泛。在很多情況下,包括受限的環境中,如:機器與機器(M2M)通信和物聯網(IoT)。其在,通過衛星鍊路通信傳感器、偶爾撥号的醫療裝置、智能家居、及一些小型化裝置中已廣泛使用。

編輯

MQTT(消息隊列遙測傳輸)是ISO 标準(ISO/IEC PRF 20922)下基于釋出/訂閱範式的消息協定。它工作在​​TCP/IP協定族​​上,是為​​硬體性能​​低下的遠端裝置以及網絡狀況糟糕的情況下而設計的釋出/訂閱型消息協定,為此,它需要一個​​消息中間件​​。

​​IBM​​公司的安迪·斯坦福-克拉克及Cirrus Link公司的阿蘭·尼普于1999年撰寫了該協定的第一個版本。

該協定的可用性取決于該協定的使用環境。IBM公司在2013年就向結構化資訊标準促進組織送出了 MQTT 3.1 版規範,并附有相關章程,以確定隻能對規範進行少量更改。MQTT-SN是針對非 TCP/IP 網絡上的嵌入式裝置主要協定的變種,與此類似的還有​​ZigBee​​協定。

縱觀行業的發展曆程,“MQTT”中的“MQ” 是來自于IBM的MQ系列​​消息隊列​​産品線。然而通常隊列本身不需要作為标準功能來支援。

可選協定包含了進階消息隊列協定,面向文本的消息傳遞協定,​​網際網路工程任務組​​限制應用協定,可擴充消息與存在協定,資料分發服務,OPC UA以及web 應用程式消息傳遞協定。 [1] 

IBM和St. Jude醫療中心通過MQTT開發了一套Merlin系統,該系統使用了用于家庭保健的傳感器。St. Jude醫療中心設計了一個叫做Merlin@home的心髒裝置,這種無線發射器可以用來監控那些已經植入複律-除顫器和起搏器(兩者都是基本的傳感器)的心髒病人。

該産品利用MQTT把病人的即時更新資訊傳給醫生/醫院,然後醫院進行儲存。這樣的話,病人就不用親自去醫院檢查心髒儀器了,醫生可以随時檢視病人的資料,給出建議,病人在家裡就可以自行檢查。

IBM稱該發射器包括一個大型觸摸屏,一個嵌入式鍵盤平台,以及一個Linux作業系統。

在未來幾年,MQTT的應用會越來越廣,值得關注。

通過MQTT協定,目前已經擴充出了數十個MQTT伺服器端程式,可以通過PHP,JAVA,Python,C,C#等系統語言來向MQTT發送相關消息。

此外,國内很多企業都廣泛使用MQTT作為Android手機用戶端與伺服器端推送消息的協定。其中Sohu,Cmstop手機用戶端中均有使用到MQTT作為消息推送消息。據Cmstop主要負責消息推送的進階研發工程師​​李文凱​​稱,随着移動網際網路的發展,MQTT由于開放源代碼,耗電量小等特點,将會在移動消息推送領域會有更多的貢獻,在物聯網領域,傳感器與伺服器的通信,資訊的收集,MQTT都可以作為考慮的方案之一。在未來MQTT會進入到我們生活的各各方面。

如果需要下載下傳MQTT伺服器端,可以直接去MQTT官方網站點選software進行下載下傳MQTT協定衍生出來的各個不同版本。 [1] 

MQTT協定是為大量計算能力有限,且工作在低帶寬、不可靠的網絡的遠端傳感器和控制裝置通訊而設計的協定,它具有以下主要的幾項特性:

1、使用釋出/訂閱消息模式,提供一對多的消息釋出,解除應用程式耦合;

2、對負載内容屏蔽的消息傳輸;

3、使用 TCP/IP 提供網絡連接配接;

4、有三種消息釋出服務品質:

5、小型傳輸,開銷很小(固定長度的頭部是 2 位元組),協定交換最小化,以降低網絡流量;

6、使用 Last Will 和 Testament 特性通知有關各方用戶端異常中斷的機制。 [1]

下一篇: MQTT

繼續閱讀