八 个 MQTT 客户端工具

一.如何选择一个 MQTT 测试客户端?

   MQTT 客户端工具常用于建立与 MQTT 服务器 的连接,进行主题订阅、消息收发等操作。一个实用的 MQTT 客户端工具应该具备如下特性:

支持加密连接;

支持 MQTT 5 特性;

在功能全面的基础上保持易用性;

支持多个客户端同时在线;

跨平台,不同操作系统下都可以使用;

支持 MQTT over WebSocket;

进阶功能:支持自定义脚本、日志记录、 MQTT Payload 格式转换等。

二.种MQTT客户端工具介绍

1.MQTT 桌面客户端

MQTTX 是 EMQ 开源的一款跨平台 MQTT 5.0 客户端工具,它支持 macOS, Linux, Windows,并且支持 MQTT 消息格式转换。

MQTTX 的用户界面借助聊天软件的形式简化了页面的操作逻辑,用户可以快速创建连接保存并同时建立多个连接客户端,方便用户快速测试 MQTT/TCP、MQTT/TLS、MQTT/WebSocket 的 连接/发布/订阅 功能及其他特性。

MQTTX 致力于打造优雅、易用的全平台 MQTT 客户端,并在最近发布了 MQTTX CLI 及 MQTTX 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

2.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

3.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

4.eclipse paho

Eclipse Paho本身是mqtt 客户端的开发库,提供多种语言实现,其也提供了MQTT客户端工具,用于测试。

下载地址:

https://repo.eclipse.org/content/repositories/paho-releases/org/eclipse/paho/org.eclipse.paho.ui.app/1.0.2/

5.MQTT 在线客户端

MQTTX Web

MQTTX Web 是一款开源的 MQTT 5.0 浏览器客户端,也是一个在线 MQTT WebSocket 客户端工具。开发者无需在本地下载和安装 MQTTX,即可使用 WebSocket 在浏览器中快速连接到 MQTT 服务器,更快地开发和调试 MQTT 服务和应用。

立即体验:http://www.emqx.io/online-mqtt-client

更多详情,请查看 GitHub 仓库:https://github.com/emqx/MQTTX/tree/main/web

6.MQTT 命令行客户端

MQTTX CLI

MQTTX CLI 是一款全开源的、强大而易用的 MQTT 5.0 命令行客户端工具,也是命令行上的 MQTTX,旨在帮助开发者无需使用图形化界面,也能快速开发和调试 MQTT 服务与应用。

特性

无依赖限制:基于命令行的安装和使用,无任何环境依赖要求

MQTT 基准测试: 开箱即用的 MQTT 性能测试工具

配置文件: 支持为 连接、发布 和 订阅 保存为本地配置文件

优雅的输出: 输出对用户友好、易于理解的命令行内容,便于查看测试步骤及内容

下载

MQTTX CLI 可以快速下载并安装到 macOS、Linux 和 Windows 系统上,安装前不需要任何的依赖环境准备,只需在终端内执行命令,即可安装和使用 MQTTX 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 -M

MQTTX CLI 支持一个 pub 命令可以发布多条消息的功能,只需要在编辑是在命令中添加一个 -M 参数和 -s 参数,每次输入完成后换行即可。

性能测试

# Connect Benchmark

mqttx bench conn -c 5000

# Subscribe Benchmark

mqttx bench sub -c 5000 -t bench/%i

# Publish Benchmark

mqttx bench pub -c 5000 -t bench/%i

7.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 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

8.Mosquitto 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'

二.参考文章

https://www.emqx.com/zh/blog/mqtt-client-tools

  • 22
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: MQTT客户端是一种轻量级的消息传输协议的实现,用于在物联网设备之间或设备与服务器之间进行通信。它被设计用于在网络带宽有限或网络连接不稳定的环境下,提供高效且可靠的消息传递服务。 MQTT客户端可以运行在各种硬件平台上,如嵌入式系统、传感器和智能手机等,并提供了灵活的API,使开发人员可以轻松地集成MQTT客户端到他们的应用程序中。 MQTT客户端通过订阅和发布两种消息模式来实现数据的传输和通知。在订阅模式下,客户端可以订阅一个或多个主题,当有新的消息发布到这些主题时,客户端会接收到相应的消息。在发布模式下,客户端可以将消息发布到一个或多个主题,然后订阅了这些主题的其他客户端将会接收到这些消息。 MQTT客户端具有许多特性,例如可靠性、即时性、可扩展性和易于集成等。它支持基于QoS(服务质量)级别的消息传递,包括至多一次、至少一次和仅一次投递保证。此外,MQTT客户端还支持会话保持、权限管理、断线重连、持久性消息和消息持久化等高级特性。 总之,MQTT客户端是一种非常有用的工具,可以简化物联网设备之间的通信,并提供高效、可靠的消息传递服务。通过使用MQTT客户端,我们可以构建出更可靠和实用的物联网应用程序。 ### 回答2: C mqtt客户端是一种轻量级的消息传输协议,用于互联网上的物联网设备和应用程序之间的通信。它是一种发布-订阅模式的协议,它将消息传递分为两个主要角色:MQTT发布者和MQTT订阅者。 MQTT客户端可以连接到MQTT代理服务器,这个代理服务器负责消息的分发。客户端可以发送消息到代理服务器的特定主题(topic),同时可以订阅一个或多个主题来接收其他客户端发送的消息。这种方式实现了实时的、异步的消息传递。 与传统的HTTP协议相比,MQTT客户端具有以下优势: 1. 轻量级:MQTT协议是设计用于低带宽、不稳定网络环境,它的通信开销非常小,适合于低功耗设备或带宽有限的环境。 2. 实时性强:MQTT采用发布-订阅模式,消息的传递是实时的,能够满足对实时性要求较高的应用场景。 3. 网络友好:MQTT使用TCP/IP协议作为传输层,支持多种网络连接方式,如Wi-Fi、3G、4G等。 4. 灵活性:MQTT协议支持多种QoS级别,可以根据应用场景要求选择消息的可靠性和传输效率。 5. 安全性:MQTT支持基于TLS/SSL的加密传输,确保消息的安全性和数据的保密性。 综上所述,C mqtt客户端是一种非常适合物联网设备和应用程序之间通信的轻量级协议,它能够提供实时性强、网络友好、灵活性高和安全性保障的消息传递机制。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AI+程序员在路上

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值