MQTT簡要介紹

乞力馬紮羅的雪CYF發表於2015-09-19

       MQTT(Message Queuing Telemetry Transport,訊息佇列遙測傳輸)是IBM開發的一個即時通訊協議,有可能成為物聯網的重要組成部分。該協議支援所有平臺,幾乎可以把所有聯網物品和外部連線起來,被用來當做感測器和致動器(比如通過Twitter讓房屋聯網)的通訊協議。


MQTT簡介

早在1999年,IBM的Andy Stanford-Clark博士以及Arcom公司ArlenNipper博士發明了MQTT(Message Queuing Telemetry Transport,訊息佇列遙測傳輸)技術[1] 。據Andy Stanford-Clark博士稱,MQTT將在今年和明年呈現爆炸式增長。
MQTT的話題是我倆談論開源物聯網平臺Pachube時提到的。Stanford-Clark認為Pachube很酷,其不足之處是不具備真正的推送功能。你需要不斷不斷輪詢才能得到即時資料。這正是MQTT能夠實現的,他提到了使用推送通訊系統的石油管道檢測系統。


MQTT應用

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協議衍生出來的各個不同版本。

MQTT特點

MQTT協議是為大量計算能力有限,且工作在低頻寬、不可靠的網路的遠端感測器和控制裝置通訊而設計的協議,它具有以下主要的幾項特性:
1、使用釋出/訂閱訊息模式,提供一對多的訊息釋出,解除應用程式耦合;
2、對負載內容遮蔽的訊息傳輸;
3、使用 TCP/IP 提供網路連線;
4、有三種訊息釋出服務質量:
    • “至多一次”,訊息釋出完全依賴底層 TCP/IP 網路。會發生訊息丟失或重複。這一級別可用於如下情況,環境感測器資料,丟失一次讀記錄無所謂,因為不久後還會有第二次傳送。
    • “至少一次”,確保訊息到達,但訊息重複可能會發生。
    • “只有一次”,確保訊息到達一次。這一級別可用於如下情況,在計費系統中,訊息重複或丟失會導致不正確的結果。
5、小型傳輸,開銷很小(固定長度的頭部是 2 位元組),協議交換最小化,以降低網路流量;
6、使用 Last Will 和 Testament 特性通知有關各方客戶端異常中斷的機制;


github主頁:https://github.com/chenyufeng1991  。歡迎大家訪問!

相關文章