博客專欄

EEPW首頁 > 博客 > 2023 年值得嘗試的 7 個(gè) MQTT 客戶端工具

2023 年值得嘗試的 7 個(gè) MQTT 客戶端工具

發(fā)布人:電子禪石 時(shí)間:2023-02-12 來源:工程師 發(fā)布文章

隨著物聯(lián)網(wǎng)行業(yè)的飛速發(fā)展,MQTT 協(xié)議也被越來越多的公司及開發(fā)者所使用。在學(xué)習(xí)和使用 MQTT 的過程中,一個(gè)得心應(yīng)手的客戶端工具可以極大的方便開發(fā)者進(jìn)行 MQTT 特性的探索及物聯(lián)網(wǎng)應(yīng)用的調(diào)試,縮短開發(fā)周期。

目前 MQTT 客戶端工具種類繁多,功能側(cè)重點(diǎn)也不盡相同。對于初學(xué)者乃至 MQTT 專家來說,如何選擇一個(gè)合適的 MQTT 客戶端工具是一個(gè)難題。

我們根據(jù)自身的使用經(jīng)驗(yàn),對目前市面上常見的客戶端工具進(jìn)行了篩選和整理,選擇了截至 2023 年最新、最實(shí)用的 7 個(gè) MQTT 客戶端工具,并按桌面端、瀏覽器端、命令行分類列出。希望本文可以幫助 MQTT 開發(fā)者快速找到一個(gè)合適的客戶端工具,開展 MQTT 連接測試。

如何選擇一個(gè) MQTT 客戶端?

MQTT 客戶端工具常用于建立與 MQTT 服務(wù)器 的連接,進(jìn)行主題訂閱、消息收發(fā)等操作。一個(gè)優(yōu)秀的 MQTT 客戶端工具應(yīng)該具備如下特性:

  • 支持加密連接;

  • 支持 MQTT 5 特性;

  • 在功能全面的基礎(chǔ)上保持易用性;

  • 支持多個(gè)客戶端同時(shí)在線;

  • 跨平臺,不同操作系統(tǒng)下都可以使用;

  • 支持 MQTT over WebSocket;

  • 進(jìn)階功能:支持自定義腳本、日志記錄、 MQTT Payload 格式轉(zhuǎn)換等。

MQTT 桌面客戶端MQTT X

MQTT X 是 EMQ 開源的一款跨平臺 MQTT 5.0 客戶端工具,它支持 macOS, Linux, Windows,并且支持 MQTT 消息格式轉(zhuǎn)換。

MQTT X 的用戶界面借助聊天軟件的形式簡化了頁面的操作邏輯,用戶可以快速創(chuàng)建連接保存并同時(shí)建立多個(gè)連接客戶端,方便用戶快速測試 MQTT/TCP、MQTT/TLS、MQTT/WebSocket 的 連接/發(fā)布/訂閱 功能及其他特性。

MQTT X 致力于打造優(yōu)雅、易用的全平臺 MQTT 客戶端,并在最近發(fā)布了 MQTT X CLI 及 MQTT X Web 兩個(gè)版本,目前在 GitHub Star 數(shù)已達(dá)到 2K,已成為使用場景最完整的 MQTT 測試客戶端。

MQTT X

特性
  • 跨平臺,支持 Windows,macOS 和 Linux

  • 支持 MQTT v3.1.1 以及 MQTT v5.0 協(xié)議

  • 單/雙向 SSL 認(rèn)證:支持 CA、自簽名證書,以及單、雙向 SSL 認(rèn)證

  • 支持 Light、Dark、Night 三種主題模式切換

  • 支持 WebSocket 連接至 MQTT 服務(wù)器

  • 支持 Hex, Base64, JSON, Plaintext

  • 支持簡體中文、英文、日文、土耳其文及匈牙利文

  • 訂閱 Topic 支持自定義顏色標(biāo)記

  • 支持 $SYS 主題自動訂閱,查看流量統(tǒng)計(jì)

  • 自定義編輯腳本測試和模擬收發(fā)數(shù)據(jù)

  • 完整的日志記錄

下載
  • 官網(wǎng)下載:https://mqttx.app/zh

  • GitHub 下載:https://github.com/emqx/MQTTX/releases

MQTT Explorer

MQTT Explorer 是一個(gè)全面的 MQTT 客戶端,它的一大亮點(diǎn)是提供了 MQTT 主題的結(jié)構(gòu)化展示及動態(tài)預(yù)覽。

MQTT Explorer 還支持對接收到的 payload 消息進(jìn)行差異對比及可視化圖表展示。與 MQTT.fx 相似,MQTT Explorer 只能創(chuàng)建一個(gè)單一的客戶端連接,不能多個(gè)客戶端同時(shí)在線。

MQTT Explorer

特性
  • 可視化 Topics 和 Topic 變化的動態(tài)預(yù)覽

  • 刪除保留的 Topics

  • 搜索/過濾 Topics

  • 遞歸刪除 Topics

  • 當(dāng)前和以前收到的消息的差異視圖

  • 發(fā)布 Toipcs

  • 繪制數(shù)字 Topics

  • 保留每個(gè) Topic 的歷史記錄

  • Dark/Light 主題

下載

下載地址:https://github.com/thomasnordquist/MQTT-Explorer/releases

MQTT.fx

MQTT.fx 是由 Jens Deters 個(gè)人開發(fā)的,MQTT.fx 適用 Apache License 2.0 協(xié)議但并未提供源碼。遺憾的是 MQTT.fx ?前已經(jīng)停?維護(hù),并轉(zhuǎn)為由 Softblade 公司資助開發(fā)另發(fā)?了其商業(yè)版本 MQTT.fx? 5.0,采?收費(fèi)許可證?式經(jīng)營該軟件。

MQTT.fx 使用 JavaFX 技術(shù)開發(fā),可以保存多個(gè)連接配置,支持多種類型的加密方式,指定多種類型的證書,創(chuàng)建連接時(shí)可以指定使用 HTTP 代理服務(wù)器。

總的來說 MQTT.fx 有豐富且成熟的功能,支持了 TCP 連接中所有可能遇到的配置項(xiàng),但是用戶同一時(shí)間只能建立一個(gè)連接,不能滿足同時(shí)使用多個(gè)測試連接的需求。另外它沒有實(shí)現(xiàn)對 WebSocket 的支持,在 MQTT over WebSocket 的測試場景中無法使用。

MQTT.fx

特性
  • 預(yù)定義消息模板

  • 通過系統(tǒng)主題 $SYS 獲取 broker 狀態(tài)

  • 記憶最近使用主題的

  • 通過 Nashorn Engine ,支持 JavaScript 腳本

  • 支持日志顯示,顯示連接中的日志信息

  • 跨平臺桌面,支持 Windows、MacOS 和 Linux

下載

下載地址:https://www.jensd.de/wordpress/?p=2746

MQTT 在線客戶端MQTT X Web

MQTT X Web 是一款開源的 MQTT 5.0 瀏覽器客戶端,也是一個(gè)在線 MQTT WebSocket 客戶端工具。開發(fā)者無需在本地下載和安裝 MQTT X,即可使用 WebSocket 在瀏覽器中快速連接到 MQTT 服務(wù)器,更快地開發(fā)和調(diào)試 MQTT 服務(wù)和應(yīng)用。

立即體驗(yàn):http://www.emqx.io/online-mqtt-client

更多詳情,請查看 GitHub 倉庫:https://github.com/emqx/MQTTX/tree/main/web

MQTT 命令行客戶端MQTT X CLI

MQTT X CLI 是一款全開源的、強(qiáng)大而易用的 MQTT 5.0 命令行客戶端工具,也是命令行上的 MQTT X,旨在幫助開發(fā)者無需使用圖形化界面,也能快速開發(fā)和調(diào)試 MQTT 服務(wù)與應(yīng)用。

MQTT CLI

特性
  • 無依賴限制:基于命令行的安裝和使用,無任何環(huán)境依賴要求

  • MQTT 基準(zhǔn)測試: 開箱即用的 MQTT 性能測試工具

  • 配置文件: 支持為 連接、發(fā)布 和 訂閱 保存為本地配置文件

  • 優(yōu)雅的輸出: 輸出對用戶友好、易于理解的命令行內(nèi)容,便于查看測試步驟及內(nèi)容

下載

MQTT X CLI 可以快速下載并安裝到 macOS、Linux 和 Windows 系統(tǒng)上,安裝前不需要任何的依賴環(huán)境準(zhǔn)備,只需在終端內(nèi)執(zhí)行命令,即可安裝和使用 MQTT X CLI。

立即下載試用:https://mqttx.app/zh/cli

快速開始

訂閱

mqttx sub -t 'mqttx/cli' -h 'broker.emqx.io' -p 1883

發(fā)布

mqttx pub -t 'mqttx/cli' -h 'broker.emqx.io' -p 1883 -m 'hello from MQTTX CLI!'

發(fā)布多條消息

mqttx pub -t 'mqttx/cli' -h 'broker.emqx.io' -p 1883 -s -M

MQTT X CLI 支持一個(gè) pub 命令可以發(fā)布多條消息的功能,只需要在編輯是在命令中添加一個(gè) -M 參數(shù)和 -s 參數(shù),每次輸入完成后換行即可。

性能測試

# Connect Benchmarkmqttx bench conn -c 5000# Subscribe Benchmarkmqttx bench sub -c 5000 -t bench/%i# Publish Benchmarkmqttx bench pub -c 5000 -t bench/%i

MQTT CLI

NanoMQ CLI

NanoMQ 是用于物聯(lián)網(wǎng)邊緣的超輕量級 MQTT 消息服務(wù)器,它同時(shí)也內(nèi)置了一個(gè)強(qiáng)大的 MQTT 協(xié)議性能測試工具 bench 及 MQTT 測試客戶端。

特性
  • 支持性能測試

  • 支持 MQTT 5.0

  • 可運(yùn)行在邊緣端

  • 支持從文件讀取數(shù)據(jù)作為 payload

下載

下載地址:https://nanomq.io/zh/downloads

快速開始

性能測試工具 bench

# 啟動 10 個(gè)連接,每秒向主題 t 發(fā)送 100 條 Qos0 消息,其中每個(gè)消息負(fù)載的大小為 16 字節(jié)nanomq_cli bench pub -t t -h broker.emqx.io -s 16 -q 0 -c 10 -I 10# 啟動 500 個(gè)連接,每個(gè)連接使用 Qos0 訂閱 t 主題nanomq_cli bench sub -t t -h broker.emqx.io -c 500# 啟動 100 個(gè)連接nanomq_cli bench conn -h broker.emqx.io -c 100

MQTT 測試客戶端

# 向主題 t 發(fā)送 100 條 Qos2 消息測試。
nanomq_cli pub -t t -h broker.emqx.io -q 2 -L 100 -m test

# 訂閱主題 tnanomq_cli sub -t t -h broker.emqx.io -q 1
Mosquitto CLI

Mosquitto 是一個(gè)開源(EPL/EDL 許可證)的消息代理,安裝之后默認(rèn)提供了 mosquitto_pub 和 mosquitto_sub 兩個(gè)命令行 MQTT 客戶端工具。

Mosquitto CLI 有多個(gè)配置選項(xiàng),支持 TLS 證書連接、通過代理服務(wù)器連接,支持 debug 模式,在 debug 模式下可以獲取更詳細(xì)的消息信息。

特性
  • 輕量級命令行工具,支持 debug 模式

  • 支持加密及非加密連接至 MQTT 服務(wù)器

  • 便于在遠(yuǎn)程服務(wù)器測試

下載

下載地址:https://github.com/eclipse/mosquitto

快速開始

訂閱

mosquitto_sub -t 'test/topic' -v

發(fā)布

mosquitto_pub -t 'test/topic' -m 'hello world'

2023 年值得嘗試的 7 個(gè) MQTT 客戶端工具 | EMQ (emqx.com)

*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請聯(lián)系工作人員刪除。



關(guān)鍵詞: mqtt

技術(shù)專區(qū)

關(guān)閉