- 物聯網系統開發(fā):從0到1構建IoT平臺(第2版)
- 付強 傅靜濤
- 528字
- 2025-08-07 15:10:09
2.1 MQTT協議
MQTT(Message Queue Telemetry Transport,消息隊列遙測傳輸)協議是IBM的Andy Stanford-Clark和Arcom的Arlen Nipper于1999年為了一個通過衛(wèi)星網絡連接輸油管道的項目開發(fā)的。為了滿足低電量消耗和低網絡帶寬的需求,MQTT協議在設計之初就包含了以下幾個特點:
● 實現簡單。
● 提供數據傳輸的QoS(Quality of Service,服務質量)。
● 輕量、占用帶寬低。
● 可傳輸任意類型的數據。
● 可保持的會話(Session)。
此后,IBM一直將MQTT協議作為一個內部協議用于其產品中。直到2010年,IBM公開發(fā)布了MQTT 3.1版本。2014年,MQTT協議正式成為OASIS(結構化信息標準促進組織)的標準協議。隨著多年的發(fā)展,MQTT協議的應用重點不再只是嵌入式系統,而是更廣泛的物聯網世界。
簡單來說,MQTT協議有以下特性:
● 基于TCP的應用層協議。
● 采用C/S架構。
● 使用訂閱/發(fā)布模式,將消息的發(fā)送方和接收方解耦。
● 提供3種消息的QoS:至多一次、最少一次、只有一次。
● 收發(fā)消息都是異步的,發(fā)送方不需要等待接收方應答。
MQTT協議的架構由Broker和連接到Broker的多個Client組成,如圖2-1所示。

圖2-1 MQTT協議的架構
MQTT協議可以為大量低功率、工作網絡環(huán)境不可靠的物聯網設備提供通信保障。而它在移動互聯網領域也大有作為,很多Android App的推送功能都是基于MQTT協議實現的,一些IM也是基于MQTT協議實現的。
MQTT協議可以說是目前應用最廣的協議。下面的章節(jié)將對MQTT協議及其特性進行詳細的講解。
- Boost C++ Application Development Cookbook(Second Edition)
- 自己動手實現Lua:虛擬機、編譯器和標準庫
- Java EE框架整合開發(fā)入門到實戰(zhàn):Spring+Spring MVC+MyBatis(微課版)
- JavaFX Essentials
- YARN Essentials
- Java Web應用開發(fā)技術與案例教程(第2版)
- CKA/CKAD應試教程:從Docker到Kubernetes完全攻略
- Building Minecraft Server Modifications
- concrete5 Cookbook
- SharePoint Development with the SharePoint Framework
- H5頁面設計:Mugeda版(微課版)
- 51單片機C語言開發(fā)教程
- OpenStack Networking Essentials
- Java圖像處理:基于OpenCV與JVM
- 超簡單:Photoshop+JavaScript+Python智能修圖與圖像自動化處理