纸鸢|物联网云平台小工具集合常见 MQTT 客户端比较
MQTT 客戶端工具介紹
概覽
在學習和使用 MQTT 的過程中,一個得心應手的客戶端工具可以極大的方便使用者進行 MQTT 特性的探索和功能組件的調試。
來自世界各地的開發者們圍繞不同操作系統、運行平臺,開發出了許多針對 MQTT 協議的客戶端測試工具。
這些客戶端工具種類繁多,功能側重點不盡相同,質量層次不齊,因此,對于初學者乃至 MQTT 專家來說,如何選擇一個適用的 MQTT 客戶端工具是一個難題。
本篇文章將盡可能的搜集整理,對市面上各類 MQTT 客戶端工具做一個全面的測評以供讀者參考。
MQTT 客戶端工具應具備的功能
MQTT 客戶端工具常用于建立與 MQTT 服務器 的連接,進行主題訂閱、消息收發等操作。
一個 MQTT 客戶端工具的功能特點可以從以下方面評估:
- 每個使用環節中工具需要盡可能提供全面的參數配置能力、使用到 MQTT 的全部特性,以便用戶應對任何使用場景、使用方式的模擬測試。
- 這部分特性包括支持客戶端認證,支持配置證書及多種加密方式連接,支持 MQTT 連接、發布、訂閱過程中多項參數的配置,支持 MQTT 5 等;
- 在功能全面的基礎上提升用戶的交互便捷性,且界面操作流暢;
- 提供其他拓展功能,如同時支持多個客戶端連接、MQTT 協議調試;
- 跨平臺,不同操作系統下都可以使用;
- 是否支持中/英文等多國語言;
- 是否支持 MQTT Payload 格式轉換。
本文將結合每個客戶端工具的特點,從以上幾點進行測評介紹,參選的客戶端工具如下:
- MQTT X
- Mosquito CLI
- MQTT.fx
- MQTT Explorer
- MQTT Box
- mqtt-spy
- MQTT Lens
- MQTT WebSocket Toolkit
MQTT X
客戶端簡介
MQTT X 是由 杭州映云科技有限公司 開源的一款跨平臺 MQTT 5.0 桌面客戶端工具,它支持 macOS,Linux,Windows,是目前為止市面上最漂亮的 MQTT 客戶端工具。
MQTT X 采用了 Electron 跨平臺技術,以消息聊天的交互形式收發消息,允許同時建立多個客戶端連接并自由切換互相通信,有較好的交互性,大大提高了 MQTT 開發測試的效率。
MQTT X 功能較全面,用戶可以快速測試 MQTT/TCP、MQTT/TLS、MQTT/WebSocket 的連接/發布/訂閱功能及其他 MQTT 協議特性。
客戶端特性
- 支持 MQTT v3.1.1 以及 MQTT v5.0 協議
- 單/雙向 SSL 認證:支持 CA、自簽名證書,以及單、雙向 SSL 認證
- 支持 Light、Dark、Night 三種主題切換
- 支持 WebSocket 連接至 MQTT 服務器
- 支持 Hex, Base64, JSON, Plaintext
- 支持簡體中文以及英文
- 訂閱 Topic 支持自定義顏色標記
- 點擊已訂閱 topic 可進行消息過濾
- 存儲 MQTT 服務器信息并可進行下拉選擇
客戶端下載
操作系統: Windows,macOS,Linux
項目地址: MQTT X 官網
下載地址: MQTT X GitHub
Mosquito CLI
客戶端簡介
Mosquitto 是一個開源(EPL/EDL 許可證)的消息代理,Mosquitto 安裝之后默認提供了 mosquitto_pub 和 mosquitto_sub 兩個命令行 MQTT 客戶端工具。
Mosquito CLI 有多個配置選項,支持 TLS 證書連接、通過代理服務器連接,支持 debug 模式,在 debug 模式下可以獲取更詳細的消息信息。
客戶端特性
- 輕量級命令行工具,支持 debug 模式,便于安裝
- 支持加密及非加密連接至 MQTT 服務器
- 便于在遠程服務器測試
客戶端下載
操作系統: Windows,macOS,Linux
項目地址: Github Mosquitto
下載地址: Mosquitto 官網
MQTT.fx
客戶端簡介
MQTT.fx 是 Jens Deters 個人開發的、目前主流的 MQTT 客戶端,可以快速驗證是否可以與 IoT Hub 服務交互發布或訂閱消息,MQTT.fx 適用 Apache License 2.0 協議但并未提供源碼。
MQTT.fx 是一個老牌的 MQTT 客戶端工具,Azure IoT Hub、AWS IoT、阿里云 IoT 等云服務提供商相關產品文檔教程均以 MQTT.fx 為例。MQTT.fx 使用 JavaFX 技術開發,由于 Java 虛擬機的關系可能在某些老舊機器上會有卡頓的體驗。
基礎功能上 MQTT .fx 可以保存多個連接配置,支持多種類型 TCL 加密方式,指定多種類型的證書。創建連接時可以指定使用 HTTP 代理服務器,連接成功后整個發布、訂閱功能使用相對來說比較合理流暢,Topics Collector 功能可以發現通過其他方式如 Broker 端代理訂閱訂閱的主題是一個功能亮點。MQTT.fx 還支持 Google Cloud Iot 的連接測試。
高級功能中 MQTT.fx 有最大的亮點支持執行 JavaScript 功能腳本,借助 Nashorn Engine 用戶編寫的 JavaScript 代碼可以訪問 Java 方法與字段實現功能擴展,熟悉 MQTT.fx 相關 API 后用戶可以編寫出適應業務的測試腳本,模擬傳感器上報數據,甚至是性能測試工具等更多強大的功能。
如果您使用的是 Mosquitto,MQTT.fx 提供專門的一個選項卡,通過訂閱系統主題(用于發布 Broker 運行信息的主題)實現 Broker 狀態可視化查看,可即時獲取到 Broker 的版本、時間等系統信息和客戶端數量、消息數量網絡流量和負載狀況等運行信息。
總的來說 MQTT.fx 有豐富且成熟的功能,支持了 TCP 連接中所有可能遇到的配置項,除了交互性略差,界面卡頓,用戶同一時間只能建立一個連接,不能滿足同時使用多個測試連接的需求。另外它沒有實現對 WebSocket 的支持,在 MQTT over WebSockets 的測試場景中無法使用。
客戶端特性
- 預定義消息模板
- 通過系統主題 $SYS 獲取 Broker 狀態
- 記憶最近使用主題的
- 通過 Nashorn Engine ,支持 JavaScript 腳本
- 支持日志顯示,顯示連接中的日志信息
- 跨平臺桌面,支持 Windows、MacOS 和 Linux
客戶端下載
操作系統: Windows,macOS,Linux
下載地址: https://mqttfx.jensd.de/index.php/download
MQTT Explorer
客戶端簡介
MQTT Explorer 是一個全面且易于使用的 MQTT 客戶端,是目前比較流行的 MQTT 桌面測試客戶端之一,基于它提供有關 MQTT Topics 的結構化預覽展示,并使其在對 MQTT Broker 上的設備/服務的使用變得非常簡單。目前基于 CC BY-NC-ND 4.0 協議開源,用戶可隨意查看源碼和使用。
對 Topics 進行可視化展示和垂直分層的展示并動態預覽是 MQTT-Explorer 的一大亮點,分層視圖使此工具易于使用,并將 MQTT Explorer 與其他出色的 MQTT 桌面客戶端區分開來;自定義訂閱可以限制 MQTT Explorer 需要處理的消息量,可以在高級連接設置中管理訂閱;用戶還可以對接收到的 payload 消息進行差異對比的視圖展示。缺點是只能創建一個單一的客戶端連接,不能多客戶端同時連接在線。
客戶端特性
- 可視化 Topics 和 Topic 變化的動態預覽
- 刪除保留的 Topics
- 搜索/過濾 Topics
- 遞歸刪除 Topics
- 當前和以前收到的消息的差異視圖
- 發布 Toipcs
- 繪制數字 Topics
- 保留每個 Topic 的歷史記錄
- Dark/Light 主題
客戶端下載
操作系統: Windows,macOS,Linux
項目地址: Github MQTT-Explorer
下載地址: https://mqtt-explorer.com/
MQTT Box
客戶端簡介
MQTT Box 是 Sathya Vikram 個人開發的 MQTT 客戶端工具,最初僅在 Chrome 上使用,作為瀏覽器拓展安裝使用, 后經重寫開源成為桌面端跨平臺獨立軟件。
MQTT Box 同樣采用了 Electron 跨平臺技術,界面簡單直接,支持多個客戶端同時在線,但客戶端之間的切換、互發消息等交互還是有一定不便。MQTT Box 借助 Chrome 有很強大的跨平臺特性,結合簡單的負載測試功能,是一款值得嘗試的 MQTT 客戶端工具。
客戶端特性
- 通過支持 Chrome OS,Linux,macOS,Windows 的 Chrome 存儲易于安裝,支持 Linux、macOS、Windows 獨立安裝
- 支持 MQTT、MQTT over WebSocket,多種 TCP 加密方式的連接
- 保存發送的歷史記錄
- 復制/粘貼歷史記錄中的消息
- 保存訂閱消息歷史記錄
- 簡單的性能測試,對 Broker 的負載做出測試并通過圖表可視化查看測試結果
客戶端下載
操作系統: Windows,macOS,Linux
項目地址: GitHub MQTTBox
下載地址: http://workswithweb.com/mqttbox.html
mqtt-spy
客戶端簡介
mqtt-spy 是 Eclipse Paho 和 Eclipse IoT 的一部分,它通過直接啟動 JAR 文件在 Java 8 和 JavaFX 之上運行,mqtt-spy 有一種很好的交互方式來展現基本的 MQTT發布/訂閱機制。
mqtt-spy 沒有提供獨立的安裝包,使用前需要用戶自行安裝 Java 運行環境。但是啟動后 mqtt-spy 擁有友好的上手體驗,啟動引導功能讓人眼前一亮,MQTT 新手可以輕松的使用 mqtt-spy 連接到公共 MQTT Broker 進行探索。mqtt-spy 的功能界面略顯復雜,但熟悉每個部件的功能后它將成為開發調試利器。還有有一點不得不提的是 mqtt-spy 的性能和穩定性有所欠缺,也有可能是筆者使用的版本為最新 Beta 版,連接多個 Broker 后頻頻出現卡頓和假死。
客戶端特性
- 支持 MQTT 和 MQTT over WebSocket
- 交互方便,可以同時發布和訂閱,在不同選項卡連接多個 Broker
- 可以關閉 pub/sub窗口的不同區域(發布,新訂閱,訂閱和消息),以便為當前使用的空間騰出空間
- 搜索功能允許查找常用 MQTT 消息,支持將發布/訂閱消息輸出到標準輸出或記錄到文件中以供后續分析
客戶端下載
操作系統: Windows,macOS,Linux
項目地址: GitHub mqtt-spy
下載地址: https://github.com/eclipse/paho.mqtt-spy/releases
MQTT Lens
客戶端簡介
MQTT Lens 是有一個 Chrome 拓展工具,可以通過 Chrome 網上應用商店安裝。MQTT Lens 界面非常簡潔,提供基礎的發布訂閱功能。
MQTT Lens 足夠簡單,但是提供了基礎的 MQTT 和 MQTT over WebSocket 連接功能,可以快速滿足入門探索使用。
客戶端特性
- 同時接受與多個 MQTT 服務器的連接,采用不同顏色關聯
- 訂閱,發布和查看所有收到的消息的界面非常簡單且易于掌握
- 支持 MQTT 和 MQTT over WebSocket
客戶端下載
操作系統: Windows,macOS,Linux
下載地址: Chrome Web Store
MQTT WebSocket Toolkit
客戶端簡介
MQTT WebSocket Toolkit 是一款簡單易用的在線 MQTT 客戶端測試工具,它基于瀏覽器端使用,只支持 MQTT over WebSocket 連接,提供了基礎的 MQTT 配置連接設置。
MQTT WebSocket Toolkit 的界面和交互沿用了 MQTT X 的設計和使用風格,以消息聊天的交互形式收發消息,允許同時建立多個客戶端連接并自由切換互相通信,提高了 MQTT 開發測試的效率;當需要測試 MQTT WebSocket 連接時,不需下載安裝多余的工具,快捷可用。
客戶端特性
- 線上快速訪問,免安裝,界面簡潔易用
- 支持 WebSocket 連接至 MQTT 服務器
- 支持創建多個客戶端,并能保存客戶端信息至下次訪問
客戶端下載
操作系統: Windows,macOS,Linux
在線地址: MQTT WebSocket Toolkit
項目地址: MQTT WebSocket Toolkit GitHub
總結
以上是生活随笔為你收集整理的纸鸢|物联网云平台小工具集合常见 MQTT 客户端比较的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 用Python代码自动生成文献的IEEE
- 下一篇: python网格搜索优化参数_Pytho