當前位置: 華文問答 > 科學

【物聯網】6.物聯網常用的通訊協定

2021-11-05科學

前兩篇文章已經介紹了兩種協定,這篇是第三種協定 - MQTT協定

【物聯網】4.物聯網常用的通訊協定 - HTTP 協定
【物聯網】5.物聯網常用的通訊協定 - WebSocket 協定

MQTT(MQ Telemetry Transport,訊息佇列遙測傳輸) 是近年來出現的一種新型協定,物聯網領域會將其作為標準協定。MQTT 原本是IBM 公司開發的協定,現在則開源了,被人們不斷開發著。

MQTT 是一種能實作一對多通訊(人們稱之為釋出或訂閱型)的協定 。它由3 種功能構成,分別是中介(broker)、釋出者(publisher)和訂閱者(subscriber)

透過MQTT 傳輸訊息

中介承擔著轉發MQTT 通訊的伺服器的作用 。相對而言, 釋出者和訂閱者則起著客戶端的作用 。釋出者是負責發送訊息的客戶端,而訂閱者是負責接收訊息的客戶端。 MQTT 交換的訊息都附帶「主題」地址 ,各個客戶端把這個「主題」視為收信地址,對其執行傳輸訊息的操作。 形象地比喻一下,中介就是接收信件的信箱。

然後釋出者連線中介,以主題為收信地址發送訊息。這就是釋出。

用「#」和「+」這樣的符號能指定多個主題。如圖所示,/Sensor/temperature/# 中使用了「#」符號,這樣就能指定所有開頭為/Sensor/temperature/ 的主題。此外,/Sensor/+/room1中使用了符號「+」,這樣一來就能指定所有開頭是/Sensor/、結尾是/room1 的主題。

像這樣借助於中介的釋出/ 訂閱型通訊,MQTT 就能實作物聯網服務與多台裝置之間的通訊。 另外, MQTT 還實作了輕量型協定。因此它還能在網路頻寬低、可靠性低的環境下執行;又因為訊息小、協定機制簡單,所以在硬體資源(裝置、CPU 和記憶體等)受限的條件下也能執行,可以說是為物聯網量身定做的協定。