1. 程式人生 > >MQTT 學習筆記

MQTT 學習筆記

內容 -s 應用程序 方式 主題 網絡流 有關 信息 版本

MQTT特點

MQTT協議是為大量計算能力有限,且工作在低帶寬、不可靠的網絡的遠程傳感器和控制設備通訊而設計的協議。

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

2、對負載內容屏蔽的消息傳輸。

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

主流的MQTT是基於TCP連接進行數據推送的,但是同樣有基於UDP的版本,叫做MQTT-SN。這兩種版本由於基於不同的連接方式,優缺點自然也就各有不同了

4、有三種消息發布服務質量:

[1] “至多一次”,消息發布完全依賴底層TCP/IP網絡。會發生消息丟失或重復:

這一級別可用於如下情況,環境傳感器數據,丟失一次讀記錄無所謂,因為不久後還會有第二次發送。這一種方式主要普通APP的推送,倘若你的智能設備在消息推送時未聯網,推送過去沒收到,再次聯網也就收不到了。

[2] “至少一次”,確保消息到達,但消息重復可能會發生:

這一種方式比較雞肋,在我的想象中沒能想到這種質量的發送在常規的APP開發中有什麽用處。

[3] “只有一次”,確保消息到達一次:

這一級別可用於如下情況,在計費系統中,消息重復或丟失會導致不正確的結果。這種最高質量的消息發布服務還可以用於即時通訊類的APP的推送,確保用戶收到且只會收到一次。

5、小型傳輸,開銷很小(固定長度的頭部是2字節),協議交換最小化,以降低網絡流量: 這就是為什麽在介紹裏說它非常適合“在物聯網領域,傳感器與服務器的通信,信息的收集”,要知道嵌入式設備的運算能力和帶寬都相對薄弱,使用這種協議來傳遞消息再適合不過了。

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

Last Will:即遺言機制,用於通知同一主題下的其他設備發送遺言的設備已經斷開了連接。

Testament:遺囑機制,功能類似於Last Will 。

MQTT 學習筆記