Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
如果你正在做物聯網(IoT)相關的開發,不管是用 ESP32 自製一個溫溼度感測器,還是拿 Raspberry Pi 架設智慧家庭中控系統,MQTT 大概是你繞不過去的通訊協定。這個輕量級的發佈/訂閱(Publish/Subscribe)協定因為頻寬消耗極低、延遲短、容易實作,幾乎成了物聯網領域的事實標準。但問題來了:當你的 Broker 上跑著幾十個甚至幾百個 Topic,你要怎麼有效率地查看每個 Topic 的訊息內容、管理訂閱關係、甚至除錯?這時候一個好用的 MQTT 客戶端工具就非常關鍵。
MQTT Explorer 正是為了解決這個問題而生的。它是一款免費、開源、跨平台的 MQTT 客戶端桌面應用程式,最突出的特色是把 MQTT 的 Topic 結構以樹狀圖的方式呈現出來,讓你一眼就能看懂整個 Broker 上運作中的 Topic 階層。相比起 Cloudflare Workers 那種純文字的日誌檢視方式,或者 VPN 連線時缺乏直覺化介面的命令列工具,MQTT Explorer 的圖形化操作體驗對新手來說友善很多。它不只是讓你發佈和訂閱訊息,還能幫你刪除 Retained Message、比對前後訊息差異、畫出數值型 Topic 的即時折線圖。這些功能在做網路通訊除錯的時候特別實用。
市面上其實有不少 MQTT 客戶端工具,像是 Google Chrome 擴充功能的 MQTTLens、跨平台的 MQTTBox,以及比較老牌的 MQTT.fx。但老實說,這些工具的介面設計大多停留在「能用就好」的階段,尤其是 Topic 數量一多,要找到你想看的那條訊息就變得很痛苦。MQTT Explorer 的樹狀結構瀏覽模式就明顯好用得多,它自動按照 Topic 的層級(用 / 分隔)把訊息歸類好,你可以像操作檔案總管一樣展開和收合每個節點。下面我們就來一步步了解 MQTT Explorer 的功能、安裝方式,以及實際操作教學。
目錄
MQTT Explorer 是由德國開發者 Thomas Nordquist 基於 Electron 框架打造的 MQTT 客戶端應用程式,原始碼完全開放在 GitHub 上,遵循 Creative Commons Public License 授權。雖然它不是什麼大型商業產品,但在 IoT 開發圈裡的知名度相當高,很多人第一次接觸 MQTT 除錯工具用的就是它。
讓 MQTT Explorer 跟其他同類工具拉開差距的,是它那套視覺化的主題樹(Topic Tree)系統。一般的 MQTT 工具只會把收到的訊息用清單列出來,但 MQTT Explorer 會按照 Topic 的層級結構自動組織成一棵樹,讓你一眼就能看出哪些是裝置狀態相關的 Topic、哪些是感測器數據的 Topic。這在 Broker 上掛了幾十個 IoT 裝置的時候,差別就非常明顯了。
從效能角度來看,MQTT Explorer 聲稱可以處理數千個 Topic 和每分鐘數十萬則訊息。實際測試下來,在你的 Broker 上跑個幾百個 Topic 確實不會有什麼卡頓。不過如果你打算用 #(萬用字元)訂閱一個承載量極大的生產環境 Broker,那就要小心了,這種場景下 MQTT Explorer 也可能吃不消。這時候你可以透過進階連線設定中的自訂 Subscription 來限制訂閱範圍,只接收你真正關心的 Topic。如果你對安全性掃描或資料結構驗證工具有興趣,也可以搭配使用來強化開發流程。
MQTT Explorer 支援三大主流作業系統:Windows、macOS 和 Linux。你可以從官方網站或 GitHub Releases 頁面下載對應的安裝檔。建議直接從 GitHub 下載,那裡會有最新版本的釋出紀錄。如果你需要管理多個下載任務,可以搭配 Free Download Manager 來處理。
Windows 使用者兩種版本功能完全一樣,差別只在於免安裝版不會寫入系統登錄檔。如果你是重度使用者,安裝版會比較方便;如果只是偶爾用一下,免安裝版就很夠了。下載回來的檔案可以存放到 pCloud 這類雲端空間,方便在不同電腦之間同步使用。
macOS 版本分為 Intel 和 ARM(Apple Silicon M1/M2/M3)兩種版本,下載對應的 .dmg 檔案即可。macOS 下載後如果出現「無法驗證開發者」的警告,請到「系統設定 > 隱私權與安全性」裡手動允許開啟。這是因為 MQTT Explorer 沒有經過 Apple 的公證(Notarization)流程,但不影響使用安全,畢竟原始碼是公開的。
Linux 使用者有三種安裝方式可以選擇:
snap install mqtt-explorer 即可chmod +x)就能直接跑dpkg -i 或 apt install 安裝安裝完成後,啟動 MQTT Explorer 會先看到一個空白的連線管理畫面,點擊左上角的「+」按鈕就可以開始建立你的第一個連線。如果你之前有匯出的連線設定備份,也可以用 B1 Online Archiver 等壓縮工具解壓縮後匯入。
在深入操作 MQTT Explorer 之前,先花一點時間釐清 MQTT 的核心運作邏輯。就算你已經有使用經驗,複習一下這些基礎概念對後面的實際操作也會有幫助。
MQTT 的全名是 Message Queuing Telemetry Transport,是一種建構在 TCP/IP 之上的輕量級訊息傳輸協定。它採用發佈/訂閱(Publish/Subscribe)模型,跟傳統的請求/回應(Request/Response)模式不太一樣。在 MQTT 的世界裡,通訊的雙方不直接互相對話,而是透過一個中間人,也就是 Broker,來轉發訊息。這種架構的好處是發佈者和訂閱者完全解耦,一個發佈者可以同時把訊息送給多個訂閱者,而發佈者根本不需要知道訂閱者是誰。就像 Cloudflare Workers 的邊緣運算架構一樣,中間層負責路由和分配。
Broker 就是 MQTT 的訊息伺服器,負責接收所有發佈者送來的訊息,然後根據訂閱關係把訊息轉發給對應的訂閱者。常見的開源 Broker 有 Mosquitto(Eclipse 基金會維護)、EMQX 和 HiveMQ。如果你只是在家裡做實驗,裝個 Mosquitto 就綽綽有餘了;如果是企業級的應用場景,EMQX 和 HiveMQ 提供了更好的叢集和高可用性支援。Broker 的位址格式通常是 IP 或網域名稱加上連接埠編號,跟 DNS 解析的原理類似,MQTT 連線也需要正確的位址才能通。
Topic 是 MQTT 用來分類訊息的機制,它使用 / 符號來建立層級,例如 home/livingroom/temperature 或 device/esp32/sensor/humidity。這種階層式結構跟檔案系統的路徑很像,你可以訂閱特定的 Topic 來只接收感興趣的訊息,也可以用萬用字元 +(單層)和 #(多層)來一次訂閱多個 Topic。這也是為什麼 MQTT Explorer 的樹狀瀏覽功能這麼好用,因為它就是按照 Topic 的層級來組織視覺呈現的。
MQTT 定義了三種服務品質等級(Quality of Service):
| QoS 等級 | 名稱 | 說明 | 適用場景 |
|---|---|---|---|
| 0 | At most once | 最多傳送一次,不保證送達 | 頻繁的感測器數據,漏掉一筆無所謂 |
| 1 | At least once | 最少傳送一次,保證送達但可能重複 | 一般應用,需要確認送達 |
| 2 | Exactly once | 剛好傳送一次,不遺失不重複 | 重要指令或計費訊息 |
大多數 IoT 場景用 QoS 0 或 1 就夠了。QoS 2 雖然最可靠,但握手過程最複雜,傳輸開銷也最大,通常只在金融交易或關鍵控制指令之類的場景才會用到。跟 GZIP 壓縮的概念類似,你要在可靠性和效能之間找到平衡點。
Retained Message(保留訊息)是 MQTT 裡一個很實用的機制。當發佈者把一則訊息標記為 Retained 並發送到 Broker 後,Broker 會把這則訊息保存下來。之後每當有新的訂閱者訂閱這個 Topic,Broker 就會立刻把這則保留訊息推送給它。這在智慧家庭場景中特別有用,比方說一個燈泡的開關狀態,你希望新的訂閱者一上線就能知道目前燈是開的還是關的,而不是要等到下一次開關操作才能收到狀態。MQTT Explorer 的一個強項就是可以查看和刪除這些 Retained Message,這在除錯和效能監控時非常方便。
安裝好 MQTT Explorer 之後,第一步就是建立與 Broker 的連線。開啟應用程式後你會看到一個連線管理畫面,左邊是已儲存的連線列表,右邊是連線設定區域。點擊左下角的「+」按鈕來新增一個連線。
在新增連線的畫面中,你需要填寫以下資訊:
如果你的 Broker 啟用了 TLS 加密(安全連線),記得開啟「Validate certificates」選項。如果是在本地端開發測試,你可以用 mkcert 工具來產生自簽 SSL 憑證,這樣即使在本機環境也能使用 TLS 連線。正式環境中,確保 Broker 使用受信任的 CA 簽發的憑證,就像 Cloudflare Turnstile 保護網站一樣,加密連線是保護 IoT 通訊安全的基本功。想要更進一步的安全防護,可以參考 Security Header Scanner 的安全掃描概念,或者用 Firefox Monitor 檢查你的帳號是否曾經外洩。
點擊連線設定畫面下方的「Advanced」按鈕,可以進入進階設定頁面。這裡最重要的功能是管理訂閱的 Topic 清單。MQTT Explorer 預設會訂閱兩個 Topic:
#:萬用字元,訂閱所有 Topic$SYS/#:系統 Topic,顯示 Broker 的運行狀態資訊對於大多數開發和測試場景,這兩個預設值就很夠用了。但如果你連線的是一個非常忙碌的 Broker(像是公開測試用的 test.mosquitto.org),訂閱 # 會讓你收到大量不相關的訊息,可能會讓 MQTT Explorer 變慢。這時候你可以在進階設定中移除 #,改成只訂閱你需要的特定 Topic,例如 home/# 或 sensor/temperature/#。
特別提醒一下,EMQX Cloud 的 Serverless 方案預設禁止訂閱 # 和 $SYS/#,如果你要連線到 EMQX Cloud,必須在進階設定中把這兩個預設值移除,改成你自己的 Topic。設定完成後點擊「Back」回到連線設定頁面,再點「Connect」就能連線了。如果你的 Broker 有設定 電子郵件路由告警,連線成功或失敗時也可能會收到通知。
除了標準的 TCP 連線,MQTT Explorer 也支援透過 WebSocket 連線。這在 Broker 位於反向代理後面、或者防火牆只允許 HTTP/HTTPS 通訊埠的場景下特別有用。要使用 WebSocket,你需要將連接埠改為 Broker 設定的 WebSocket 埠(通常是 8083 或 8084),並在進階設定中勾選 WebSocket 選項。如果你的 Broker 運行在雲端主機上,可以參考各家的虛擬主機方案來部署自己的 MQTT Broker。
連線成功後,MQTT Explorer 的主畫面會分成幾個區域。左邊是主題樹面板,它會根據 Broker 上所有的 Topic 自動建立一棵層級樹。右邊上方是訊息內容面板,顯示你選中的 Topic 的詳細資訊。右邊下方是發佈面板,讓你發送新的訊息。這個佈局設計得蠻直覺的,左邊選 Topic,右邊看內容和發訊息。
主題樹的每個節點都可以點擊展開或收合。如果你的 Broker 上有 home/livingroom/temperature 和 home/livingroom/humidity 這兩個 Topic,在主題樹中它們會被組織成 home > livingroom > temperature / humidity 的層級結構,一目了然。
頂部有一個搜尋列,你可以輸入關鍵字來快速過濾出符合條件的 Topic。當 Topic 數量很多的時候,這個搜尋功能就非常實用。搜尋支援部分匹配,不需要輸入完整的 Topic 名稱。
點擊主題樹中的任何一個 Topic,右邊的訊息面板就會顯示該 Topic 的最新訊息內容。MQTT Explorer 會自動嘗試辨識 Payload 的格式:
如果你需要在不同格式之間轉換,可以搭配 Free Online File Converter 這類線上工具。要查看 MQTT 通訊的狀態碼或連線資訊,也可以用 httpstatus 來檢查相關的 HTTP 狀態。
這是 MQTT Explorer 一個很貼心的功能。當你連續收到同一個 Topic 的多則訊息時,MQTT Explorer 會自動比對新舊訊息的差異,用顏色標記出哪些欄位改變了。這在監控裝置狀態變化的時候特別方便,不用你自己一行一行對著看。尤其是在 JSON Payload 包含很多欄位的情況下,Diff 功能可以幫你快速定位到真正改變的那幾個值。
這可能是 MQTT Explorer 最被開發者稱道的功能之一。在 Broker 上要刪除 Retained Message,標準做法是向該 Topic 發佈一則空的 Payload。但 MQTT Explorer 讓這件事變得超級簡單:當一個 Topic 節點有 Retained Message 時,旁邊會出現一個帶有數字的黃色圓圈,點擊垃圾桶圖示就能直接刪除。你也可以遞迴地刪除整棵子樹的 Retained Message,這在清理測試資料的時候省了很多功夫。
如果 Topic 的 Payload 是數值(例如溫度、濕度、電壓等),MQTT Explorer 會自動繪製一張即時折線圖。你可以直接在圖上觀察數值的變化趨勢,不用特地匯出資料到 Excel 裡畫。這在監控感測器數據的時候非常實用,調試的時候也能直觀地看到數值是否在合理範圍內。對於需要長期監控的場景,你也可以把歷史資料匯出後用 圖片格式轉換工具 處理成報告用的圖表。如果你在做資料結構的驗證,這個圖表功能也很有參考價值。
MQTT Explorer 的發佈介面位於主畫面右下角。整個操作流程很直覺:在 Topic 欄位填入你要發佈的目標主題,在 Payload 區域輸入訊息內容,設定好 QoS 等級和 Retain Flag,然後點擊 Publish 按鈕就行了。
home/livingroom/light/set發佈 JSON 格式的訊息時,MQTT Explorer 會自動驗證 JSON 的合法性。如果你的 JSON 語法有錯誤,旁邊會出現紅色的叉號提醒你修正。這個即時驗證功能對開發者來說很貼心,省去了反覆修改語法錯誤的麻煩。跟 ChatGPT API 整合時的 JSON 格式要求類似,MQTT 的 JSON Payload 也需要嚴格遵守格式規範。
假設你有一個透過 Tasmota 韌體控制的智慧插座,它的控制 Topic 是 cmnd/tasmota_plug/power。要開啟這個插座,你只需要在 MQTT Explorer 中:
cmnd/tasmota_plug/powerON(純文字格式)如果一切設定正確,你應該能立刻在主題樹中看到插座回傳的狀態更新。如果想要更進階的操作,你也可以發佈 JSON 格式的訊息來一次設定多個參數。發佈訊息後,你可以在上方的訊息面板看到發佈的記錄和訂閱者回傳的回應。在製作技術文件或教學文章時,你可以用 免費圖庫 的素材或 Freepik 的設計資源來搭配說明。
MQTT 在智慧家庭領域的應用非常廣泛,幾乎所有主流的智慧家庭平台都支援 MQTT 作為裝置通訊的橋樑。MQTT Explorer 在這個生態系中扮演著除錯和監控的關鍵角色,讓你可以即時看到裝置之間的訊息流動。如果你打算建立一個智慧家庭網站來展示你的 IoT 專案,可以參考 如何加速 WordPress 網站 和 WordPress 快取外掛推薦 來最佳化你的網站效能。
Home Assistant 是目前最受歡迎的開源智慧家庭平台之一,它內建了完整的 MQTT 整合功能。設定方式是在 Home Assistant 的 configuration.yaml 中加入 MQTT Broker 的連線資訊,或者透過 UI 介面的整合設定來完成。設定好之後,Home Assistant 就會自動訂閱和發佈 MQTT 訊息來與各種 IoT 裝置互動。
在這個架構下,MQTT Explorer 的用途是讓你可以「看到」Home Assistant 和裝置之間到底在傳什麼訊息。比方說你設定了一個溫溼度感測器,但在 Home Assistant 的面板上遲遲看不到數據更新,這時候打開 MQTT Explorer 檢查相關 Topic,就能快速判斷是感測器沒有在發送資料,還是 Home Assistant 的自動化設定有問題。這種除錯方式比翻日誌快得多。
zigbee2mqtt 是一個將 Zigbee 無線通訊協定的裝置橋接到 MQTT 的開源專案。透過它,你可以把飛利浦 Hue、IKEA TRADFRI、小米等品牌的 Zigbee 裝置直接接入 MQTT 網路,不需要那些廠商專屬的閘道器。zigbee2mqtt 會為每個裝置建立對應的 Topic,例如 zigbee2mqtt/客廳溫度計,然後定期發佈裝置的狀態數據。
用 MQTT Explorer 來監控 zigbee2mqtt 的 Topic 樹是一件很過癮的事。你可以看到所有 Zigbee 裝置的即時狀態、電池電量、訊號強度等資訊。如果某個裝置突然離線了,你也可以在 Topic 樹中快速定位到它的 availability Topic 來確認狀態。如果你的智慧家庭服務跑在雲端主機上,Bluehost 提供了穩定的託管環境,而 Kinsta 則在高效能 WordPress 託管方面有很好的口碑。想要比較各家方案的差異,可以參考 WordPress 虛擬主機推薦懶人包。
Node-RED 是 IBM 開發的視覺化流程編輯器,特別適合用來建立 IoT 資料處理流程。它內建了 MQTT 節點,可以輕鬆地訂閱和發佈 MQTT 訊息。一個典型的使用場景是:Node-RED 訂閱感測器的 MQTT Topic,當溫度超過某個閾值時自動觸發一條通知或開啟電風扇。在開發這種流程的時候,MQTT Explorer 就是你最好的偵錯夥伴,你可以同時用 MQTT Explorer 監控 Topic 上的訊息,確認 Node-RED 是否正確發送和接收了資料。
來看一個具體的例子。假設你有一個 ESP32 開發板,上面接了 DHT22 溫溼度感測器,每 30 秒透過 MQTT 發佈一次數據到 home/livingroom/temperature 和 home/livingroom/humidity 這兩個 Topic。在 MQTT Explorer 中,你可以在主題樹的 home > livingroom 節點下找到這兩個 Topic,點擊後右邊會顯示最新的溫度和濕度數值。如果 Payload 是數值格式,MQTT Explorer 還會自動畫出折線圖,讓你觀察過去一段時間的溫溼度變化趨勢。
這種即時監控的能力在開發初期特別重要。如果感測器的讀數看起來不正常(比如溫度突然跳到 85 度),你可以立刻在 MQTT Explorer 中看到異常數據,然後回頭去檢查程式碼或硬體接線,不用等日誌寫完再去翻找。
雖然 MQTT Explorer 對大多數開發和測試場景來說都夠用,但在某些特定情況下你可能會遇到效能問題或連線困難。這裡整理一些實用的建議和排解方法。
MQTT Explorer 的效能瓶頸通常出現在訂閱了大量 Topic 的情況下。如果你的 Broker 上運行了數千個 Topic,而且你用 # 萬用字元訂閱了全部,MQTT Explorer 就得處理每一則流經 Broker 的訊息。雖然官方宣稱可以處理每分鐘數十萬則訊息,但實際上在這種高負載場景中,UI 的回應速度還是會受到影響。
解決方法是善用進階連線設定中的自訂 Subscription 功能。不要用 # 訂閱所有 Topic,改成只訂閱你真正需要監控的 Topic 範圍。例如,如果你只關心客廳的裝置,就訂閱 home/livingroom/# 而不是 #。這樣 MQTT Explorer 就只需要處理一小部分訊息,效能表現會好很多。如果你的 IoT 服務跑在雲端伺服器上,遇到效能問題時也可以參考500 Internal Server Error 和 502 Bad Gateway Error 的排解方法,確認是不是伺服器端的問題。
如果你遇到的是閘道或逾時類型的錯誤,可以參考 503 Service Unavailable 和 504 Gateway Timeout Error 的解決方法。網路延遲問題則可以使用 Ping 即時延遲測量工具 來診斷。
這一點前面已經提過,但值得再強調一次。在正式上線的生產環境中,Broker 可能承載著數千個裝置的通訊量。如果用 # 訂閱全部 Topic,你等於是在告訴 Broker「把每一則訊息都發給我」,這不只會拖慢 MQTT Explorer,也可能影響 Broker 本身的效能。正確的做法是根據你目前的除錯需求,精準訂閱特定範圍的 Topic。養成這個習慣,對你未來處理更大規模的 IoT 專案也會有幫助。
市面上的 MQTT 客戶端工具不算少,每種工具各有各的強項和適用場景。以下把 MQTT Explorer 和幾款主流替代方案放在一起比較,幫你判斷哪個工具最適合你的需求。如果你正在規劃 IoT 專案的基礎設施,選擇合適的 MQTT 工具就跟選擇網域名稱或選擇域名註冊商一樣重要。
| 功能/工具 | MQTT Explorer | MQTTX | MQTT.fx | MQTTBox | MQTTLens |
|---|---|---|---|---|---|
| 價格 | 免費 | 免費 | 付費(有限免費版) | 免費 | 免費 |
| 開源 | 是 | 是 | 否 | 是 | 是 |
| 平台支援 | Win/Mac/Linux | Win/Mac/Linux/Web/CLI | Win/Mac/Linux | Win/Mac/Linux/Chrome | Chrome 擴充功能 |
| MQTT 5.0 | 否(僅 3.1.1) | 是 | 是 | 否 | 否 |
| 視覺化 Topic 樹 | 是(核心特色) | 否 | 否 | 否 | 否 |
| 多連線同時 | 否(僅一條) | 是 | 是 | 是 | 是 |
| Diff 比較 | 是 | 否 | 否 | 否 | 否 |
| 數值圖表 | 是 | 否 | 否 | 否 | 否 |
| 刪除 Retained | 是(視覺化操作) | 手動發空 Payload | 手動 | 手動 | 手動 |
| 腳本自動化 | 否 | 是 | 是(有限) | 否 | 否 |
| TLS/SSL | 是 | 是 | 是 | 是 | 是 |
| 活躍維護 | 較少更新 | 活躍 | 已停止 | 較少更新 | 較少更新 |
從上面的比較表可以看出來,MQTT Explorer 的優勢集中在視覺化和直覺操作這兩個面向。它的 Topic 樹瀏覽、Diff 比較和數值圖表功能在同類工具中幾乎找不到第二家。但它在 MQTT 5.0 支援、多連線管理和腳本自動化方面就明顯弱了一些。如果你需要的是一個快速上手、視覺化效果好的除錯工具,MQTT Explorer 依然是首選。但如果你需要更進階的功能,MQTTX 會是更好的選擇。
在選擇工具時也可以考慮你的部署環境。如果你的 Broker 跑在 Cloudflare 網路上,或是部署在 Hostinger 或 DreamHost 等主機服務上,不同工具的連線穩定度也可能有所不同,建議實際測試後再決定。
雖然 MQTT Explorer 是一款優秀的工具,但它確實有一些限制。它不支援 MQTT 5.0、不能同時維持多條連線、也沒有腳本自動化功能。如果你的開發需求超出了 MQTT Explorer 的能力範圍,以下幾款替代方案值得考慮。
MQTTX 是由 EMQ 團隊開發的開源 MQTT 客戶端,支援桌面版、命令列版和網頁版。它完整支援 MQTT 5.0、3.1.1 和 3.1 三個版本的協定,還內建了腳本引擎、基準測試工具和 IoT 資料模擬功能。如果你需要在多個 Broker 之間切換、或者需要進行自動化測試,MQTTX 會比 MQTT Explorer 更適合。MQTTX 目前是 EMQX 官方推薦的替代 MQTT Explorer 的方案。
MQTT.fx 是一款老牌的 Java-based MQTT 客戶端,功能非常完整,支援 MQTT 5.0、Lua 腳本擴充和各種進階操作。不過它已經停止維護,而且免費版本的功能有限制。如果你之前一直在用 MQTT.fx,現在會建議遷移到 MQTTX。
如果你習慣在終端機裡工作,Eclipse Mosquitto 自帶的 mosquitto_pub 和 mosquitto_sub 命令列工具是最輕量的選擇。它沒有圖形介面,所有操作都透過命令列參數完成,適合用在自動化腳本或 CI/CD 流程中。跟圖形化工具比起來,命令列工具的優勢是可以精確控制每一個參數,而且可以在無頭(headless)伺服器上使用。
HiveMQ 提供了一個基於瀏覽器的 MQTT 用戶端,不需要安裝任何軟體,直接在網頁上就能連線到 Broker。雖然功能比較陽春,但如果只是要做簡單的發佈訂閱測試,這是最快的方式。
選擇 MQTT 客戶端工具時,可以從以下幾個面向來評估:你的 MQTT 協定版本需求(3.1.1 還是 5.0)、是否需要同時連線多個 Broker、是否需要腳本自動化、以及你偏好圖形介面還是命令列。如果你的需求以除錯和監控為主,MQTT Explorer 的視覺化體驗依然是最好的選擇。如果需要更進階的功能,就選 MQTTX。你的 Broker 部署環境也很重要,如果跑在 A2 Hosting 這種高效能主機上,搭配 SiteGround 的穩定網路環境,效果會更好。如果預算有限,FastComet 或 RunCloud + GCP 也是不錯的選擇。在建立 IoT 專案的展示網站時,可以參考熱門 WordPress 佈景主題推薦來選擇適合的網站外觀。
MQTT Explorer 支援 Windows、macOS(Intel 和 Apple Silicon)和 Linux(透過 Snap、AppImage 或 deb 套件安裝)。它是基於 Electron 開發的,理論上只要是 Electron 支援的平台都能跑。如果你在選擇技術展示網站的主題時也需要考慮跨平台相容性。
不行,這是 MQTT Explorer 目前最大的限制之一。它一次只能維持一條連線。如果你需要同時連線到多個 Broker,只能先斷開目前的連線再建立新連線,或者改用 MQTTX 這類支援多連線的工具。這個限制在做多裝置跨 Broker 除錯的時候會比較不方便。
目前不支援。MQTT Explorer 只支援 MQTT 3.1 和 3.1.1 版本。如果你需要使用 MQTT 5.0 的新特性(如共用訂閱、訊息過期、原因碼等),需要改用 MQTTX 或其他支援 5.0 的工具。對於大多數 IoT 開發場景來說,3.1.1 版本已經足夠了,但如果你在開發新系統,建議一開始就考慮 5.0 的相容性。
在 MQTT Explorer 中,有 Retained Message 的 Topic 節點旁邊會出現一個帶數字的黃色圓圈標記。你可以點擊該節點旁的垃圾桶圖示來刪除單一 Topic 的 Retained Message,也可以在父節點上遞迴刪除整棵子樹的 Retained Message。這是 MQTT Explorer 相比其他工具最突出的功能之一。你也可以手動向該 Topic 發佈一則空的 Payload 來達到同樣的效果。
MQTT Explorer 的原始碼完全開放在 GitHub 上,任何人都可以審查。開發者已經移除了遙測(Telemetry)功能,所以應用程式不會主動回傳任何使用數據。你的 MQTT 連線資料只在你的電腦和 Broker 之間傳輸,不會經過第三方伺服器。如果你仍然有疑慮,可以自行從原始碼編譯,確保沒有任何後門。在WordPress SEO 設定和網站安全方面,也可以透過適當的編輯器設定來保護你的內容。
MQTT Explorer 的最新版本是 0.4.0-beta.6,但更新頻率確實比較低。開發者 Thomas Nordquist 仍然在接受 GitHub 上的 Issue 回報,但新功能的開發速度已經放緩。如果你需要一個更活躍維護的替代方案,EMQX 團隊開發的 MQTTX 是目前最推薦的選擇。你也可以在 InstaWP 或 DemosWP 上建立測試環境來評估不同的 MQTT 工具。做好資料備份也是很重要的,可以使用 UpdraftPlus 來備份你的 WordPress 網站資料。
這是最常見的問題之一,通常是以下幾個原因造成的:第一,確認你的訂閱 Topic 是否正確。MQTT Explorer 預設訂閱 #(全部),但如果你在進階設定中修改了訂閱清單,可能會漏掉某些 Topic。第二,確認 Broker 是否有設定 ACL(存取控制清單)限制特定 Topic 的訂閱權限。第三,確認發佈者是否真的在發送訊息,你可以用另一個 MQTT 工具交叉驗證。第四,如果使用的是託管的 MQTT 服務(如 EMQX Cloud),確認你是否在連線前已經正確設定了訂閱 Topic,因為 MQTT Explorer 不支援連線後動態修改訂閱。
回顧一下 MQTT Explorer 的定位:它是一款免費、開源、跨平台的 MQTT 客戶端,最大的賣點是視覺化的 Topic 樹管理和 Retained Message 操作。對於剛入門 IoT 開發的新手來說,它的圖形化介面比命令列工具友善得多;對於有經驗的開發者,它的 Diff 比較和數值圖表功能在除錯時也很實用。
但它並不完美。不支援 MQTT 5.0、一次只能連一條線、沒有腳本自動化、更新頻率偏低,這些都是客觀存在的限制。如果你的需求偏向進階開發或自動化測試,MQTTX 會是更全面的選擇。
話說回來,在物聯網開發的世界裡,手上至少要有一個好用的 MQTT 客戶端工具,這就跟開發網站需要好的 圖片編輯工具 和 去背工具 一樣基本。MQTT Explorer 雖然不是功能最強大的那一個,但在視覺化管理和直覺操作這兩個面向,它目前仍然沒有對手。搭配穩定的網路服務基礎設施,你的 IoT 開發體驗會更加順暢。無論你最終選擇哪個工具,重要的是先開始動手用起來,累積實戰經驗。