2022 年值得尝试的 7 个 MQTT 客户端工具
隨著物聯網行業的飛速發展,MQTT 協議也被越來越多的公司及開發者所使用。在學習和使用 MQTT 的過程中,一個得心應手的客戶端工具可以極大的方便開發者進行 MQTT 特性的探索及物聯網應用的調試,縮短開發周期。
目前 MQTT 客戶端工具種類繁多,功能側重點也不盡相同。對于初學者乃至 MQTT 專家來說,如何選擇一個合適的 MQTT 客戶端工具是一個難題。
我們根據自身的使用經驗,對目前市面上常見的客戶端工具進行了篩選和整理,選擇了截至 2022 年最新、最實用的 7 個 MQTT 客戶端工具,并按桌面端、瀏覽器端、命令行分類列出。希望本文可以幫助 MQTT 開發者快速找到一個合適的客戶端工具,開展 MQTT 連接測試。
如何選擇一個 MQTT 客戶端?
MQTT 客戶端工具常用于建立與 MQTT 服務器 的連接,進行主題訂閱、消息收發等操作。一個優秀的 MQTT 客戶端工具應該具備如下特性:
- 支持加密連接;
- 支持 MQTT 5 特性;
- 在功能全面的基礎上保持易用性;
- 支持多個客戶端同時在線;
- 跨平臺,不同操作系統下都可以使用;
- 支持 MQTT over WebSocket;
- 進階功能:支持自定義腳本、日志記錄、 MQTT Payload 格式轉換等。
MQTT 桌面客戶端
MQTT X
MQTT X 是 EMQ 開源的一款跨平臺 MQTT 5.0 客戶端工具,它支持 macOS, Linux, Windows,并且支持 MQTT 消息格式轉換。
MQTT X 的用戶界面借助聊天軟件的形式簡化了頁面的操作邏輯,用戶可以快速創建連接保存并同時建立多個連接客戶端,方便用戶快速測試 MQTT/TCP、MQTT/TLS、MQTT/WebSocket 的 連接/發布/訂閱 功能及其他特性。
MQTT X 致力于打造優雅、易用的全平臺 MQTT 客戶端,并在最近發布了 MQTT X CLI 及 MQTT X Web 兩個版本,目前在 GitHub Star 數已達到 2K,已成為使用場景最完整的 MQTT 測試客戶端。
特性
- 跨平臺,支持 Windows,macOS 和 Linux
- 支持 MQTT v3.1.1 以及 MQTT v5.0 協議
- 單/雙向 SSL 認證:支持 CA、自簽名證書,以及單、雙向 SSL 認證
- 支持 Light、Dark、Night 三種主題模式切換
- 支持 WebSocket 連接至 MQTT 服務器
- 支持 Hex, Base64, JSON, Plaintext
- 支持簡體中文、英文、日文、土耳其文及匈牙利文
- 訂閱 Topic 支持自定義顏色標記
- 支持 $SYS 主題自動訂閱,查看流量統計
- 自定義編輯腳本測試和模擬收發數據
- 完整的日志記錄
下載
- 官網下載:https://mqttx.app/zh
- GitHub 下載:https://github.com/emqx/MQTTX/releases
MQTT Explorer
MQTT Explorer 是一個全面的 MQTT 客戶端,它的一大亮點是提供了 MQTT 主題的結構化展示及動態預覽。
MQTT Explorer 還支持對接收到的 payload 消息進行差異對比及可視化圖表展示。與 MQTT.fx 相似,MQTT Explorer 只能創建一個單一的客戶端連接,不能多個客戶端同時在線。
特性
- 可視化 Topics 和 Topic 變化的動態預覽
- 刪除保留的 Topics
- 搜索/過濾 Topics
- 遞歸刪除 Topics
- 當前和以前收到的消息的差異視圖
- 發布 Toipcs
- 繪制數字 Topics
- 保留每個 Topic 的歷史記錄
- Dark/Light 主題
下載
下載地址:https://github.com/thomasnordquist/MQTT-Explorer/releases
MQTT.fx
MQTT.fx 是由 Jens Deters 個人開發的,MQTT.fx 適用 Apache License 2.0 協議但并未提供源碼。遺憾的是 MQTT.fx ?前已經停?維護,并轉為由 Softblade 公司資助開發另發?了其商業版本 MQTT.fx? 5.0,采?收費許可證?式經營該軟件。
MQTT.fx 使用 JavaFX 技術開發,可以保存多個連接配置,支持多種類型的加密方式,指定多種類型的證書,創建連接時可以指定使用 HTTP 代理服務器。
總的來說 MQTT.fx 有豐富且成熟的功能,支持了 TCP 連接中所有可能遇到的配置項,但是用戶同一時間只能建立一個連接,不能滿足同時使用多個測試連接的需求。另外它沒有實現對 WebSocket 的支持,在 MQTT over WebSocket 的測試場景中無法使用。
特性
- 預定義消息模板
- 通過系統主題 $SYS 獲取 broker 狀態
- 記憶最近使用主題的
- 通過 Nashorn Engine ,支持 JavaScript 腳本
- 支持日志顯示,顯示連接中的日志信息
- 跨平臺桌面,支持 Windows、MacOS 和 Linux
下載
下載地址:https://www.jensd.de/wordpress/?p=2746
MQTT 在線客戶端
MQTT X Web
MQTT X Web 是一款開源的 MQTT 5.0 瀏覽器客戶端,也是一個在線 MQTT WebSocket 客戶端工具。開發者無需在本地下載和安裝 MQTT X,即可使用 WebSocket 在瀏覽器中快速連接到 MQTT 服務器,更快地開發和調試 MQTT 服務和應用。
立即體驗:http://www.emqx.io/online-mqtt-client
更多詳情,請查看 GitHub 倉庫:https://github.com/emqx/MQTTX/tree/main/web
MQTT 命令行客戶端
MQTT X CLI
MQTT X CLI 是一款全開源的、強大而易用的 MQTT 5.0 命令行客戶端工具,也是命令行上的 MQTT X,旨在幫助開發者無需使用圖形化界面,也能快速開發和調試 MQTT 服務與應用。
特性
- 無依賴限制:基于命令行的安裝和使用,無任何環境依賴要求
- 開放源碼:基于 Apache License 2.0 協議,開放源碼
- 易于集成:可快速集成到自動化測試腳本中
- 單/雙向 SSL 認證:支持 CA、自簽名證書,以及單、雙向 SSL 認證
下載
MQTT X CLI 可以快速下載并安裝到 macOS、Linux 和 Windows 系統上,安裝前不需要任何的依賴環境準備,只需在終端內執行命令,即可安裝和使用 MQTT X CLI。
立即下載試用:https://mqttx.app/zh/cli
快速開始
訂閱
mqttx sub -t 'mqttx/cli' -h 'broker.emqx.io' -p 1883發布
mqttx pub -t 'mqttx/cli' -h 'broker.emqx.io' -p 1883 -m 'hello from MQTTX CLI!'發布多條消息
mqttx pub -t 'mqttx/cli' -h 'broker.emqx.io' -p 1883 -s -MMQTT X CLI 支持一個 pub 命令可以發布多條消息的功能,只需要在編輯是在命令中添加一個 -M 參數和 -s 參數,每次輸入完成后換行即可。
NanoMQ CLI
NanoMQ 是用于物聯網邊緣的超輕量級 MQTT 消息服務器,它同時也內置了一個強大的 MQTT 協議性能測試工具 bench 及 MQTT 測試客戶端。
特性
- 支持性能測試
- 支持 MQTT 5.0
- 可運行在邊緣端
- 支持從文件讀取數據作為 payload
下載
下載地址:https://nanomq.io/zh/downloads
快速開始
性能測試工具 bench
# 啟動 10 個連接,每秒向主題 t 發送 100 條 Qos0 消息,其中每個消息負載的大小為 16 字節 nanomq_cli bench pub -t t -h broker.emqx.io -s 16 -q 0 -c 10 -I 10# 啟動 500 個連接,每個連接使用 Qos0 訂閱 t 主題 nanomq_cli bench sub -t t -h broker.emqx.io -c 500# 啟動 100 個連接 nanomq_cli bench conn -h broker.emqx.io -c 100MQTT 測試客戶端
# 向主題 t 發送 100 條 Qos2 消息測試。 nanomq_cli pub -t t -h broker.emqx.io -q 2 -L 100 -m test# 訂閱主題 t nanomq_cli sub -t t -h broker.emqx.io -q 1Mosquitto CLI
Mosquitto 是一個開源(EPL/EDL 許可證)的消息代理,安裝之后默認提供了 mosquitto_pub 和 mosquitto_sub 兩個命令行 MQTT 客戶端工具。
Mosquitto CLI 有多個配置選項,支持 TLS 證書連接、通過代理服務器連接,支持 debug 模式,在 debug 模式下可以獲取更詳細的消息信息。
特性
- 輕量級命令行工具,支持 debug 模式
- 支持加密及非加密連接至 MQTT 服務器
- 便于在遠程服務器測試
下載
下載地址:https://github.com/eclipse/mosquitto
快速開始
訂閱
mosquitto_sub -t 'test/topic' -v發布
mosquitto_pub -t 'test/topic' -m 'hello world'版權聲明: 本文為 EMQ 原創,轉載請注明出處。
原文鏈接:https://www.emqx.com/zh/blog/mqtt-client-tools
總結
以上是生活随笔為你收集整理的2022 年值得尝试的 7 个 MQTT 客户端工具的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: HTTP请求方式和幂等性
- 下一篇: 【经典算法实现 14】阿克曼函数(手动推