鹹魚筆記—MQTT簡介

鹹魚筆記—MQTT簡介


MQTT(Message Queuing Telemetry Transport,消息隊列遙測傳輸)是IBM開發的一個即時通訊協議,有可能成爲物聯網的重要組成部分。該協議支持所有平臺,幾乎可以把所有聯網物品和外部連接起來,被用來當做傳感器和致動器的通信協議。


MQTT特點

MQTT協議是爲大量計算能力有限,且工作在低帶寬、不可靠的網絡的遠程傳感器和控制設備通訊而設計的協議,它具有以下主要的幾項特性:
1、使用發佈/訂閱消息模式,提供一對多的消息發佈,解除應用程序耦合;
2、對負載內容屏蔽的消息傳輸;
3、使用 TCP/IP 提供網絡連接;
4、有三種消息發佈服務質量:

  • o“至多一次”,消息發佈完全依賴底層 TCP/IP 網絡。會發生消息丟失或重複。這一級別可用於如下情況,環境傳感器數據,丟失一次讀記錄無所謂,因爲不久後還會有第二次發送。
  • o“至少一次”,確保消息到達,但消息重複可能會發生。
  • o“只有一次”,確保消息到達一次。這一級別可用於如下情況,在計費系統中,消息重複或丟失會導致不正確的結果。

5、小型傳輸,開銷很小(固定長度的頭部是 2 字節),協議交換最小化,以降低網絡流量;
6、使用 Last Will 和 Testament 特性通知有關各方客戶端異常中斷的機制;

MQTT特性/優勢

總結下來 MQTT 有如下特性/優勢:
➢ 異步消息協議
➢ 面向長連接
➢ 雙向數據傳輸
➢ 協議輕量級
➢ 被動數據獲取
MQTT 通信的角色有兩個,分別是服務器和客戶端。服務器只負責中轉數據,不做存儲;客戶端可以是信息發送者或訂閱者,也可以同時是兩者。
在這裏插入圖片描述

MQTT客戶端
一個使用MQTT協議的應用程序或者設備,它總是建立到服務器的網絡連接。客戶端可以:

發佈其他客戶端可能會訂閱的信息
訂閱其它客戶端發佈的消息
退訂或刪除應用程序的消息
斷開與服務器連接

MQTT服務器
MQTT服務器以稱爲“消息代理”(Broker),可以是一個應用程序或一臺設備。它是位於消息發佈者和訂閱者之間,它可以:

  • 接受來自客戶的網絡連接
  • 接受客戶發佈的應用信息
  • 處理來自客戶端的訂閱和退訂請求
  • 向訂閱的客戶轉發應用程序消息

確定了角色後是如何傳輸數據呢?下表示 MQTT 最基本的數據幀格式,例如溫度傳感器發佈主題“Temperature”編號,消息是“25”(表示溫度)。那麼所有訂閱了這個主題編號的客戶端(手機應用)就會收到相關信息,從而實現通信。

MQTT 數據幀格式
Topic ID (主題編號) Message (消息)
Temperature 25

micropython發佈者&訂閱者參考代碼

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章