iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 1
1
IoT

簡簡單單的MQTT入門系列 第 1

MQTT 簡介

  • 分享至 

  • xImage
  •  

MQTT於1999年被IBM的Andy Stanford-Clark和Arcom(現為Eurotech)的Arlen Nipper所發明。

MQTT(MMQ Telemetry Transport)是一個發佈/訂閱的訊息傳輸協議,它是開放、極簡單、易於實現、輕量級的。是為受限設備和低頻寬、高延遲或不可靠的網路所設計的。設計原則就是最小化的網路頻寬和設備資源需求,同時試著確保可靠性和一定程度的遞送保證。這些原則也使其成為『machine-to-machine』或『Internet of Things』世界的理想選擇。

本協議運行在TCP/IP協議(或其他網路協議)並提供有序、可靠、雙向的連接。特色包含:

  • 使用發佈/訂閱訊息模式提供一對多的訊息分發和應用程式間的解耦。
  • 訊息傳輸不需知道負載內容。
  • 提供三種服務質量:
    1. At most once,最多一次,盡環境所能提供的最大努力去分發訊息,有可能會丟失。例如,對於環境傳感器的資料,單次的資料丟失沒有關係,因為不久就會發送下一次訊息。
    2. At least once,至少一次,確保訊息可以到達,但是可能會重複。
    3. Exactly once,僅一次,保證訊息只會送達一次。例如,在計費系統中,訊息的重複或丟失會導致不正確的收費。
  • 最小化傳輸開銷和協議資料交換,以減少網絡流量。
  • 發生異常斷線時通知相關方的機制。

MQTT需要一個Broker來接收、派送客戶端的訊息,客戶端可以當發佈者也可以當訂閱者,或是兩者都可以。因為有Broker的存在,發佈者、訂閱者不需要知道彼此的存在。
https://ithelp.ithome.com.tw/upload/images/20190816/200112736qJclpCUvJ.jpg

舉例來說,我們在武嶺和小琉球都裝置有溫度感測器的設備,定時將溫度值傳給Broker;另一方面在手機或電腦上的應用程式想要接收溫度的資料。因此會有兩件事情發生:

  • 設備定義要發佈的主題,例如『temperature』或『temperature/Wuling』,然後發佈訊息『溫度值』給Broker。
  • 手機或電腦上的應用程式向Broker訂閱了主題『temperature』或『temperature/Wuling』,接收設備已發佈的訊息,也就是溫度值。
    https://ithelp.ithome.com.tw/upload/images/20190816/20011273XzahpZIAjV.jpg

MQTT Broker有眾多選擇,請看官網上的介紹


下一篇
安裝Broker-VerneMQ
系列文
簡簡單單的MQTT入門23
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言