MQTT教學(四):使用MQTTLens訂閱與發布MQTT訊息

本文將使用Sandro先生開發的MQTTLens(直譯為「透鏡」),連接Mosquitto伺服器,練習MQTT訊息的發布與訂閱流程,本文也將說明在主題名稱中,搭配萬用字元訂閱多筆主題的方式。MQTTLens是Chrome瀏覽器的應用程式,在Chrome的線上應用程式商店搜尋“MQTT”關鍵字就找得到,請將它加入Chrome。

Chrome的線上應用程式商店

1. 在「Chome應用程式起動器」中,按一下MQTTLens開啟它。第一次啟動MQTTLens的畫面如下:

第一次啟動MQTTLens的畫面

2. 按下Connection(連結)旁邊的+鈕,在底下的新增連結畫面中,輸入連結名稱本機網址(127.0.0.1)或者MQTT伺服器所在的網址,其他選項沿用預設值。連結名稱是寫給我們自己看的,跟程式無關,因此可用中文命名。

新增MQTT伺服器連結

3. 按下CREATE CONNECTION(建立連結)之後,將切換到如下的畫面:

建立連結畫面

訂閱與發布MQTT訊息

我們將使用MQTTLens模擬從「庭院」的DHT11感測器發布溫濕度值,假設此感測器的主題叫做:

home/yard/DHT11

而此主題的訊息是如下的JSON格式:

{“temp”:21, “humid”:24}

請依下圖設定MQTTLens的訂閱和發布主題以及發布訊息,「品質」和“Retained(是否保留)”採用預設值(相關說明請參閱下文)。

設定MQTTLens的訂閱和發布主題以及發布訊息

按下SUBSCRIBE(訂閱)PUBLISH(發布)鈕之後,視窗底下的Subscriptions將列出訂閱項目以及接收到的前五筆訊息。請試著修改訊息內容,再按下PUBLISH(發布)鈕,訂閱者將立即收到新的訊息。

接收到3筆MQTT訊息

匹配訂閱主題

訂閱者需要向代理人提出想要訂閱的主題名稱,才能收到相關訊息。訂閱主題可以是完整的名稱,也能搭配底下+和#萬用字元,訂閱單層或者多層相關主題

  • +字元:匹配單一階層的主題名稱
  • #字元:匹配多層主題名稱,這個字元只放在名稱最後。

假設MQTT的階層名稱定義如下:

MQTT的階層名稱

訂閱者可透過下列三個敘述,一次訂閱多個主題:

訂閱多個主題的敘述

井號可單獨使用,例如,“#”代表訂閱所有主題,但請避免這麼做,若MQTT代理人包含許多主題,此舉會增加網路負荷。底下的訂閱主題設置是無效的:

無效的訂閱主題敘述

延伸閱讀

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *