歡迎光臨
每天分享高質量文章

簡單的聊一聊MQTT

物聯網 (IoT) 設備必須連接互聯網。通過連接到互聯網,設備就能相互協作,以及與後端服務協同工作。互聯網的基礎網絡協議是 TCP/IP。MQTT(訊息佇列遙測傳輸) 是基於 TCP/IP 協議棧而構建的,已成為 IoT 通信的標準。

MQTT 最初由 IBM 於上世紀 90 年代晚期發明和開發。它最初的用途是將石油管道上的傳感器與衛星相鏈接。顧名思義,它是一種支持在各方之間異步通信的訊息協議。異步訊息協議在空間和時間上將訊息發送者與接收者分離,因此可以在不可靠的網絡環境中進行擴展。雖然叫做訊息佇列遙測傳輸,但它與訊息佇列毫無關係,而是使用了一個發佈和訂閱的模型。在 2014 年末,它正式成為了一種 OASIS 開放標準,而且在一些流行的編程語言中受到支持(通過使用多種開源實現)。

MQTT 協議在網絡中定義了兩種物體型別:一個訊息代理和一些客戶端。代理是一個服務器,它從客戶端接收所有訊息,然後將這些訊息路由到相關的標的客戶端。客戶端是能夠與代理交互來發送和接收訊息的任何事物。客戶端可以是現場的 IoT 傳感器,或者是資料中心內處理 IoT 資料的應用程式。

  1. 客戶端連接到代理。它可以訂閱代理中的任何訊息 “主題”。此連接可以是簡單的 TCP/IP 連接,也可以是用於發送敏感訊息的加密 TLS 連接。
  2. 客戶端通過將訊息和主題發送給代理,發佈某個主題範圍內的訊息。
  3. 代理然後將訊息轉發給所有訂閱該主題的客戶端。

因為 MQTT 訊息是按主題進行組織的,所以應用程式開發人員能靈活地指定某些客戶端只能與某些訊息交互。例如,傳感器將在 “sensor_data” 主題範圍內發佈讀數,並訂閱 “config_change” 主題。將傳感器資料儲存到後端資料庫中的資料處理應用程式會訂閱 “sensor_data” 主題。管理控制台應用程式能接收系統管理員的命令來調整傳感器的配置,比如靈敏度和採樣頻率,並將這些更改發佈到 “config_change” 主題。

    赞(0)

    分享創造快樂