MQTT協議
MQTT是一個物聯網傳輸協議,專門針對物聯網開發的輕量級傳輸協議。 (需要一個中間件)
基於客戶端-伺服器的 輕量級的 消息發布\訂閱的傳輸協議,旨在為低頻寬和不穩定的網路環境中的物聯網設備提供可靠的網路服務。
工作在TCP/IP協議上,對 低功耗廣域網路(即低頻寬,延遲高,網路不佳) 做了特殊優化,可使用極小頻寬 無線網路 通訊低功耗 必要時保證高可靠性
主流的MQTT是基於TCP連接進行數據推送到,但是同樣有基於UDP的版本,叫做MQTT-SN。
使其能夠適應各種物聯網應用場景。擁有各個平台和設備上的客戶端,已經形成初步的生態系統
優點
1 MQTT更加簡單
使用發布/訂閱消息模式,提供一對多的消息發布,解除應用程式耦合,相對於其他協議,開發更簡單
2 MQTT網路更加穩定
工作在TCP/IP協議上,由TCP/IP協議提供穩定的網路連接
3 輕量級
小型傳輸,開銷很小(固定長度的頭部式2位元組),協議交換最小化,以降低網路流量,適合低頻寬,數據量較小的應用
4 易於實現
MQTT協議的服務端程式已經非常成熟,PHP,JAVA,Python,C,C#都可以向MQTT發送相關資訊
5 開放性
源程式碼開放,都可以用,也進一步推動了MQTT的發展,百度雲、阿里雲、中國移動onenet等幾乎所有的開放性物聯網平台都支援MQTT。
總結
MQTT是一種簡單、穩定、開放、輕量級易於實現的消息協議,在物聯網的應用下的資訊採集,工業控制,智慧家居等方面具有廣泛的適用性;
特點:
使用 發布 / 訂閱 的訂閱消息模式,提供一對多的消息發布解除應用程式耦合(一服務端多客戶端(無論硬體或軟體))
對負載內容屏蔽的消息傳輸
使用TCP/IP提供網路連接
有三種消息發布服務品質:
- 有三種消息發布服務品質:
- 「至多一次」,消息發布完全依賴底層 TCP/IP 網路。會發生消息丟失或重複。這一級別可用於如下情況,環境感測器數據,丟失一次讀記錄無所謂,因為不久後還會有第二次發送。
- 「至少一次」,確保消息到達,但消息重複可能會發生。
- 「只有一次」,確保消息到達一次。這一級別可用於如下情況,在計費系統中,消息重複或丟失會導致不正確的結果。
- 小型傳輸,開銷很小(固定長度的頭部是 2 位元組),協議交換最小化,以降低網路流量。
- 使用 Last Will 和 Testament 特性通知有關各方客戶端異常中斷的機制。
以 u-blox 物聯網通訊即服務產品組合為例(下圖),u-blox MQTT Anywhere、MQTT Here 和 MQTT Now三款產品基於可擴展的高性能MQTT伺服器與數據流管理器,彼此相輔相成且互為補充,能有效幫助您縮短產品開發周期,簡化物聯網設備與企業間的數據通訊。
支援MQTT協議的產品:
E810系列:
E810-DTU(1RS1E)、
E810-DTU(RS232)-V2.0、
E810-DTU(RS485)-V2.0、
E810-DTU-V2.0、
E810-TTL-ETH02;
E840系列:
E840-TTL-4G05、
E840-DTU(4G-05)、
E840-TTL-4G04、
E840-DTU(4G-04)、
E840-TTL-4G02、
E840-DTU(4G-02);
其他型號:
EA01-S、E103-W02、E103-W02DTU。