建立一個 MQTT 測試環境
如何建立一個 MQTT server 的測試環境,在網路上有提供 MQTT Broker 的服務,其中免費的 MQTT 測試網站列表,如下: 1) MQTT GO : https://broker.mqttgo.io/ ,使用說明參考 [1] 。 2) EMQX : https://www.emqx.com/ ,可用谷歌或 Github 帳號登錄,然後創建 MQTT 服務。特別留意,這個網站提供的連線方式為 MQTT over TLS/SSL 。 有了網路的 Broker 服務之後,我們需要設計一個訊息發佈的終端,來模擬 IoT 的設備。利用 MQTTnet C# 設計一個 client 端的工具,可驗證 MQTT 連線與發佈,工具的操作畫面如下所示。 操作步驟 1) 設定 broker 網址以及連線的端口,標準端口: 1883 ,或者 TLS/SSL 端口: 8883 。不過,這個 MQTT GO 網站使用標準端口連線,而且不需要 user/password 。按下 Connect 鈕後,無論成功與否,會彈出一個連線結果。 2) 成功後,設定右側的 Topic 欄位,然後再填寫訊息欄,最後按下 Publish ,這則訊息會傳送到 MQTT GO 網站,我們再到網站上檢視,如下圖。 3) 開啟瀏覽器到 MQTT GO 網站,先連線後,再訂閱主題。這裡的主題就是對應上面工具的 Topic 欄位,訂閱後,就能直接在瀏覽器上面看到工具傳送的訊息。 模擬測試 根據水利署的 MQTT 資料上傳文件 [2] ,主題的格式為 Datastream( 物理量 GUID)/Observations ,而訊息內容為 JSON 格式。將 GUID 填入 1 為模擬代號,下圖是模擬的結果。 EMQX 連線資訊 EMQX 服務器的連線採用 MQTT over TLS/SSL ,其中連線的 user 帳號為 peter ,而 password 為 ******** ,網址為 v351583c.ala.asia-southeast1.emqxsl.com 。下圖是連線成功的情況,就可以進行發佈訊息了。 如何訂閱這個主題?我們需要