7个最好的MQTT客户端工具值得一试
为MQTT测试找到一个合适的客户端工具。按桌面、浏览器和命令行分类列出,这些工具都是免费的(大部分,开源)。
随着物联网产业的快速发展,MQTT协议被更多的公司和开发者所使用。在学习和使用MQTT的过程中,一个便捷的客户端工具可以帮助开发者调试物联网应用,探索MQTT的功能,缩短开发周期。
有各种各样的MQTT客户端工具,有不同的功能重点。对于初学者甚至是MQTT专家来说,选择一个合适的MQTT客户端工具是一个挑战。
我在2022年选择了七个最有用的MQTT客户端工具,并按照桌面、浏览器和命令行的类别列出。所有这些工具都是免费提供的,而且大部分都是开源的。
我确实希望这篇文章能够帮助你快速找到一个适合MQTT测试的客户端工具。
如何选择一个MQTT客户端
MQTT客户端工具通常用于建立与MQTT经纪商的连接,以进行消息发送和接收操作。除了这个基本功能之外,我们认为一个好的MQTT客户端工具应该具有以下特点:
-
支持单向和双向的SSL认证
-
支持MQTT 5的功能
-
所有功能的易用性
-
支持多个、同时在线的客户端
-
跨平台,可在不同操作系统下使用
-
支持通过WebSockets的MQTT
-
高级功能。自定义脚本、日志记录、有效载荷格式转换等。
MQTT桌面客户端
MQTT X
MQTT X是一个跨平台、开源的MQTT 5.0客户端工具,可以在macOS、Linux和Windows上运行,并支持多种有效载荷格式。
它在一个熟悉的、类似聊天的界面的帮助下,简化了测试操作。它可以方便快捷地创建多个同时在线的MQTT客户端连接,并可以测试MQTT/TCP、MQTT/TLS、MQTT/WebSocket的连接、发布和订阅功能,以及其他MQTT协议功能。
MQTT X致力于建立一个优雅、易用、全平台的MQTT客户端,最近同时发布了MQTT X CLI和MQTT X Web。现在,MQTT X在GitHub Star上已经达到2K。
特点:
-
跨平台,适用于Windows、macOS和Linux
-
支持MQTT v3.1.1和MQTT v5.0协议
-
支持CA、自签名证书以及单程和双程SSL/TLS认证
-
支持光明、黑暗和夜晚之间的主题切换
-
支持通过WebSocket的MQTT
-
支持Hex、Base64、JSON、Plaintext
-
支持英语、日语、简体中文、土耳其语和匈牙利语
-
支持主题订阅的自定义颜色编码
-
支持自动订阅$SYS和字节统计数据
-
可定制的脚本,模拟数据测试
-
完整的日志记录功能
下载
MQTT资源管理器
MQTT Explorer是一个全面的MQTT客户端,它提供了一个结构化的MQTT主题概述,并使你的经纪人上的设备/服务工作变得简单。
MQTT Explorer支持对收到的有效载荷消息进行差异比较和可视化图表显示。与MQTT.fx(如下)类似,MQTT Explorer只能创建一个连接,不能同时有多个客户端在线。
特点:
-
可视化主题和动态预览主题的变化情况
-
删除保留的主题
-
搜索/过滤主题
-
递归删除主题
-
对当前和以前收到的信息有不同的看法
-
发布主题
-
绘制数字主题
-
保留每个主题的历史记录
-
浅色和深色之间的主题切换
下载
MQTT.fx
MQTT.fx最初由Jens Deters开发。在2021年1月,MQTT.fx转移到Softblade--一家新的德国公司,负责进一步开发。它发布了一个商业版本,MQTT.fx® 5.0。本文中描述的MQTT.fx是免费的1.x版本。
MQTT.fx是用JavaFX开发的,支持保存多种连接配置,多种类型的加密方法,指定多种类型的证书,并且可以在创建连接时设置HTTP代理服务器。
总的来说,MQTT.fx具有丰富、成熟的功能,支持TCP连接中的许多配置项,但用户一次只能建立一个连接。此外,它没有实现对WebSockets的支持,不能用于测试MQTT over WebSockets。
特点:
-
预定义的消息模板
-
通过系统主题获得经纪人的状态
$SYS -
通过Nashorn引擎支持JavaScript脚本
-
支持日志显示,在连接中显示日志信息
-
跨平台桌面,支持Windows、macOS和Linux
下载
MQTT浏览器客户端
MQTT X Web
MQTT X Web是一个开源的MQTT 5.0浏览器客户端和一个在线MQTT WebSocket客户端工具。开发人员可以使用WebSocket在浏览器中快速连接到MQTT服务器,并在不安装MQTT X的情况下更快地调试MQTT服务和应用程序。
MQTT X Web 现在 可以 试用。另外, 在GitHub上 查看关于 MQTT X Web的 更多信息 。
MQTT命令行工具
MQTT X CLI
MQTT X CLI是一个完全开源的MQTT 5.0命令行客户端工具,即命令行上的MQTT X。这使得开发人员能够使用命令行更快地开发和调试MQTT服务和应用程序,而不需要图形界面。
特点:
-
无依赖性。不需要先决条件就能启动和运行
-
易于集成。快速集成到自动化测试脚本中
-
单向和双向SSL:支持单向和双向SSL认证
下载
MQTT X CLI可以快速下载并安装在macOS、Linux和Windows系统上,没有任何环境依赖,只需在终端执行命令即可。另外,要了解更多信息,请查看GitHub上的MQTT X CLI。
使用方法
连接:
mqttx conn -h 'broker.emqx.io' -p 1883 -u 'admin' -P 'public'
订阅:
mqttx sub -t 'hello' -h 'broker.emqx.io' -p 1883
发布:
mqttx pub -t 'hello' -h 'broker.emqx.io' -p 1883 -m 'from MQTTX CLI'
发布多条消息:
mqttx pub -t 'mqttx/cli' -h 'broker.emqx.io' -p 1883 -s -M
MQTT X CLI也支持发布多条消息的pub命令,只需在编辑器中为该命令添加-M参数和-s参数,并在每个条目后换行。
NanoMQ CLI
NanoMQ是一个用于物联网边缘的超轻量级、极快的MQTT代理,它包含丰富的工具包,包括broker、bench、conn、pub和sub-client。
特点:
-
支持性能测试
-
支持MQTT 5.0
-
能够在边缘设备上运行
-
支持读取文件内容作为MQTT有效载荷
下载
使用方法
MQTT性能测试工具:
# Start 10 connections and send 100 Qos0 messages to the topic t every second,
# where the size of each message payload is 16 bytes
nanomq_cli bench pub -t t -h broker.emqx.io -s 16 -q 0 -c 10 -I 10
# Start 500 connections, and each subscribes to the t topic with Qos0
nanomq_cli bench sub -t t -h broker.emqx.io -c 500
# Start 100 connections
nanomq_cli bench conn -h broker.emqx.io -c 100
MQTT客户端:
# Send 100 Qos2 messages test to the topic t
nanomq_cli pub -t t -h broker.emqx.io -q 2 -L 100 -m test
# Subscribe
nanomq_cli sub -t t -h broker.emqx.io -q 1
Mosquitto CLI
Mosquitto是一个MQTT服务器的开源实现,用于5.0、3.1.1和3.1版本的协议。它还包括一个C和C++客户端库,以及用于发布和订阅的mosquitto_pub 和mosquitto_sub 实用程序。
Mosquitto CLI有多种配置选项,支持通过TLS证书和代理服务器的连接,支持调试模式,并能在调试模式下获得更详细的消息信息。
特点:
-
轻量级的命令行工具
-
支持调试模式
-
支持加密和非加密连接到MQTT经纪人
-
易于在远程服务器上进行测试
下载
如需下载,请访问GitHub上的Mosquitto。
使用方法
订阅:
mosquitto_sub -t 'test/topic' -v
发布:
mosquitto_pub -t 'test/topic' -m 'hello world'