随着物联网行业的飞速发展,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 主题主动订阅,查看流量统计
- 自定义编辑脚本测试和模仿收发数据
- 残缺的日志记录
MQTT Explorer
MQTT Explorer 是一个全面的 MQTT 客户端,它的一大亮点是提供了 MQTT 主题的结构化展现及动静预览。
MQTT Explorer 还反对对接管到的 payload 音讯进行差别比照及可视化图表展现。与 MQTT.fx 类似,MQTT Explorer 只能创立一个繁多的客户端连贯,不能多个客户端同时在线。
个性
- 可视化 Topics 和 Topic 变动的动静预览
- 删除保留的 Topics
- 搜寻 / 过滤 Topics
- 递归删除 Topics
- 以后和以前收到的音讯的差别视图
- 公布 Toipcs
- 绘制数字 Topics
- 保留每个 Topic 的历史记录
- Dark/Light 主题
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
MQTT 在线客户端
MQTT X Web
MQTT X Web 是一款开源的 MQTT 5.0 浏览器客户端,也是一个在线 MQTT WebSocket 客户端工具。开发者无需在本地下载和装置 MQTT X,即可应用 WebSocket 在浏览器中疾速连贯到 MQTT 服务器,更快地开发和调试 MQTT 服务和利用。
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。
疾速开始
订阅
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 -M
MQTT X CLI 反对一个 pub
命令能够公布多条音讯的性能,只须要在编辑是在命令中增加一个 -M
参数和 -s
参数,每次输出实现后换行即可。
NanoMQ CLI
NanoMQ 是用于物联网边缘的超轻量级 MQTT 音讯服务器,它同时也内置了一个弱小的 MQTT 协定性能测试工具 bench
及 MQTT 测试客户端。
个性
- 反对性能测试
- 反对 MQTT 5.0
- 可运行在边缘端
- 反对从文件读取数据作为 payload
疾速开始
性能测试工具 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 100
MQTT 测试客户端
# 向主题 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 1
Mosquitto CLI
Mosquitto 是一个开源 (EPL/EDL 许可证) 的音讯代理,装置之后默认提供了 mosquitto_pub 和 mosquitto_sub 两个命令行 MQTT 客户端工具。
Mosquitto CLI 有多个配置选项,反对 TLS 证书连贯、通过代理服务器连贯,反对 debug 模式,在 debug 模式下能够获取更具体的音讯信息。
个性
- 轻量级命令行工具,反对 debug 模式
- 反对加密及非加密连贯至 MQTT 服务器
- 便于在近程服务器测试
疾速开始
订阅
mosquitto_sub -t 'test/topic' -v
公布
mosquitto_pub -t 'test/topic' -m 'hello world'
版权申明:本文为 EMQ 原创,转载请注明出处。
原文链接:https://www.emqx.com/zh/blog/mqtt-client-tools