MQTT,是:
輕量級的消息訂閱和釋出(publish/subscribe)協定
建立在TCP/IP協定之上
IoT,internet of things,物聯網,MQTT在這方面應用較多。
官方網站:http://mqtt.org/
MQTT協定是針對如下情況設計的:
M2M(Machine to Machine) communication,機器端到端通信,比如傳感器之間的資料通訊
因為是Machine to Machine,需要考慮:
Machine,或者叫裝置,比如溫度傳感器,硬體能力很弱,協定要考慮盡量小的資源消耗,比如計算能力和存儲等
M2M可能是無線連接配接,網絡不穩定,帶寬也比較小
MQTT協定的架構,用一個示例說明。比如有1個溫度傳感器(1個Machine),2個小的顯示屏(2個Machine),顯示屏要顯示溫度傳感器的溫度值。
可通過MQTT V3.1 Protocol Specification查閱詳細規範的細節。
顯示器需要先通過MQTT協定subscribe(訂閱)一個比如叫<code>temperature</code>的topic(主題):
當溫度傳感器publish(釋出)溫度資料,顯示器就可以收到了:
注:以上兩張圖,取自MQTT and CoAP, IoT Protocols
協定裡還有2個主要的角色:
client,用戶端
broker,伺服器端
它們是通過TCP/IP協定連接配接的。
因為MQTT是協定,是以不能拿來直接用的,就好比HTTP協定一樣。需要找實作這個協定的庫或者伺服器來運作。
這裡是官方的Server support。
MQTT(Message Queuing Telemetry Transport),是一個物聯網傳輸協定,它被設計用于輕量級的釋出/訂閱式消息傳輸,旨在為低帶寬和不穩定的網絡環境中的物聯網裝置提供可靠的網絡服務。MQTT是專門針對物聯網開發的輕量級傳輸協定。MQTT協定針對低帶寬網絡,低計算能力的裝置,做了特殊的優化,使得其能适應各種物聯網應用場景。本文旨在研究其在消息釋出/訂閱/接收場景下的應用.
服務端
是發送消息的用戶端和請求訂閱的用戶端之間的中介,又稱為broker.它接收來自用戶端的網絡連接配接;接收用戶端釋出的消息;處理用戶端的訂閱和取消訂閱請求;轉發相應消息給符合條件的已訂閱用戶端.
用戶端
訂閱相關的消息;釋出消息給其它相關的用戶端
訂閱
訂閱包含一個主題過濾器和一個最大的服務品質(QoS)等級.用戶端隻有訂閱了相關主題時,才能接收到對應主題的消息