v1.9.1 进行中:MQTT X CLI 支持自动重连及保存和读取本地文件

简介: MQTT 5.0客户端工具MQTT X发布了1.9.0版本:MQTT X CLI命令行客户端实现支持MQTT的性能测试,桌面端应用新增了关于学习MQTT的帮助页面。1.9.1版本开发中,将支持更多新功能。

十一月初,MQTT X 团队发布了 1.9.0 版本:MQTT X CLI 命令行客户端实现支持 MQTT 的性能测试,桌面端应用新增了关于学习 MQTT 的帮助页面等,此外还进行了一些使用优化和问题修复。

目前,团队正专注于 1.9.1 版本的开发。新版本中 MQTT X CLI 命令行客户端将支持自动重连,支持读取和存储本地配置文件,还可对于接收到的消息进行格式转换;桌面端应用支持设置滚动频率,并修复了一些使用上的问题。

桌面客户端

支持设置滚动频率

1.9.1 版本中我们新增了一个配置项:滚动频率。该配置项用于设置消息列表的滚动频率,需要在开启自动滚动时才可以配置。

在之前的版本中,当我们开启自动滚动时,消息列表会在接收到新的消息时自动滚动到底部,但是这样会导致消息列表的滚动速度过快,当接收到消息的速率过快时,用户无法马上查看到消息的具体内容。因此,我们新增了滚动频率的配置项,可以在设置页面中进行配置,滚动频率的单位为秒,用户可以根据自己的需求进行配置。设置完成后,当接收到新的消息时,消息列表会在滚动频率时间内滚动到底部,这样可以保证消息列表的滚动速度适中,用户可以在滚动前查看到消息的具体内容。

设置滚动频率 图1.png

帮助页面调整

在之前的版本中,我们新增了帮助页面,用于帮助用户学习 MQTT。在这个版本中,我们将其设置成了一个独立的菜单,改名为「关于 MQTT 的一切」,方便用户快速点击到该菜单中,查看 MQTT 的相关知识,包括 MQTT 的基本概念、参数配置、主题消息、QoS 以及客户端编程等内容。

帮助页面调整 图2.png

其它

  • 用户属性配置支持添加多个重复的 key,并为其设置不同的 value,完全兼容 MQTT 协议
  • UI 样式与交互上的优化
  • 修复一些已知 BUG

命令行客户端

支持自动重连

在之前的版本中,当 MQTT 服务器出现异常时,MQTT X CLI 命令行客户端会自动断开连接并退出,这样会导致用户无法在 MQTT 服务器恢复后继续使用 MQTT X CLI,需要重新手动连接。因此,我们在该版本中新增了自动重连的功能,当 MQTT 服务器出现异常后,MQTT X CLI 命令行客户端断开连接后会自动重连。

支持自动重连 图3.png

每次重连有一个最大重连次数,当达到最大重连次数后,MQTT X CLI 命令行客户端会退出,以防止客户端在无法连接的情况下一直重连。自动重连的最大重连次数默认为 10 次,可以使用 --maximun-reconnect-times 参数进行配置。

# 以连接命令时的自动重连次数配置为例,修改为 5 次

mqttx conn -h 'broker.emqx.io' -p 1883 --maximun-reconnect-times 5

除重连次数外,我们还新增了重连间隔的配置项,当 MQTT 服务器出现异常后,MQTT X CLI 命令行客户端会在重连间隔时间内进行重连,重连间隔的单位为毫秒,默认为 1000 毫秒,可以使用 --reconnect-period 参数进行配置,

注意:当重连间隔设置为 0 时,表示关闭自动重连功能。
# 以连接命令时的重连间隔配置为例,修改为 5000 毫秒

mqttx conn -h 'broker.emqx.io' -p 1883 --reconnect-period 5000

同时支持在 bench 命令中使用自动重连功能。对于自定数量中的连接,会对每一个异常断开连接的进行自动重连。

bench 支持自动重连 图4.png

支持读取和存储本地配置文件

MQTT X CLI 命令行客户端在之前的版本中,每次连接都需要手动输入连接参数,这样会导致用户每次连接都需要输入一遍参数,比较繁琐。因此,我们在该版本中新增了读取和存储本地配置文件的功能。用户可以将连接参数保存到本地配置文件中,下次连接时可以直接读取本地配置文件中的参数,无需再次输入,且支持对所有 CLI 中的命令进行保存。

在运行命令时使用 --save 参数和保存文件的路径即可保存配置文件, 默认保存的文件名为 mqttx-cli-config.json,保存的文件路径为当前运行命令的目录下。

在运行命令时,使用 --config 参数和配置文件的路径即可读取配置文件。

注意:MQTT X CLI 本地存储的文件同时支持 JSON 和 YAML 格式,但是在使用 --save 参数时,需要指定文件的格式,如 --save mqttx-cli-config.json--save mqttx-cli-config.yaml

支持读取和存储本地配置文件 图5.png

支持消息的格式转换

在之前的版本中,MQTT X CLI 命令行客户端只支持发送字符串类型的消息,当用户发送 Hex 类型的消息时,接收到的消息转换为字符串显示时就会出现问题。因此 MQTT X CLI 命令行客户端在该版本中新增了消息格式转换的功能,用户可以在接收消息时指定消息的格式。

消息格式支持以下几种:

  • String
  • Hex
  • Base64
  • JSON

除 String 格式外,只需要在订阅命令时添加一个 --format 参数 即可指定消息的格式,如 --format hex

支持消息的格式转换 图6.png

Web 客户端

MQTT X Web 客户端同步了 MQTT X 桌面端应用的相关功能修改与页面调整。

未来规划

MQTT X 还在持续增强完善中,以期为用户带来更多实用、强大的功能,为物联网应用与服务的测试和开发提供便利。接下来我们将重点关注以下方面,敬请期待:

  • 接收消息和存储时的性能优化,大量消息不卡顿
  • MQTT Debug 功能
  • 支持 Sparkplug B 格式
  • 接收到的消息可以进行自动图表绘制
  • 插件功能
  • 脚本测试自动化(Flow)
版权声明: 本文为 EMQ 原创,转载请注明出处。

原文链接:[https://www.emqx.com/zh/blog/mqttx-newsletter-202211](

相关实践学习
消息队列RocketMQ版:基础消息收发功能体验
本实验场景介绍消息队列RocketMQ版的基础消息收发功能,涵盖实例创建、Topic、Group资源创建以及消息收发体验等基础功能模块。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
目录
相关文章
EMQ
|
存储 物联网 Docker
v1.8.3 进行中:MQTT X CLI 支持多主题订阅,优化输出显示
九月,MQTT 5.0客户端工具MQTT X 1.8.3版本持续开发中,为会话过期间隔添加默认值,并优化了MQTT X CLI(命令行)的默认输出显示。
EMQ
165 0
v1.8.3 进行中:MQTT X CLI 支持多主题订阅,优化输出显示
EMQ
|
物联网 测试技术 iOS开发
MQTT X v1.8.1版本发布:桌面端支持自动更新,MQTT X CLI支持MQTT 5.0
MQTT X v1.8.1版本发布:MQTT X桌面端版本支持自动更新,MQTT X CLI实现对MQTT 5.0的连接支持及用户属性设置支持,未来将支持部分场景下的MQTT协议性能测试。
EMQ
247 0
MQTT X v1.8.1版本发布:桌面端支持自动更新,MQTT X CLI支持MQTT 5.0
EMQ
|
物联网 测试技术
MQTT X Newsletter 2022-07 | 自动更新、MQTT X CLI 支持 MQTT 5.0、新增 conn 命令…
7月,MQTT X团队专注于1.8.1版本的开发。v1.8.1中MQTT X桌面端版本将支持自动更新,并对MQTT X Web页面进行了优化。
EMQ
188 1
EMQ
|
运维 网络协议 JavaScript
MQTT X CLI 正式发布:强大易用的 MQTT 5.0 命令行工具
下载桌面客户端、使用终端命令行或是在桌面浏览器上都可快速完成对 MQTT 的连接测试。
EMQ
336 0
MQTT X CLI 正式发布:强大易用的 MQTT 5.0 命令行工具
EMQ
|
物联网 Linux 开发者
MQTT X Newsletter 2022-06 | v1.8.0 发布,新增 MQTT CLI 和 MQTT WebSocket 工具
本月,MQTT X 发布了最新的 1.8.0 版本,新增了 MQTT CLI 和 MQTT WebSocket 客户端工具,支持在终端命令行或桌面浏览器上快速完成对 MQTT 的连接测试。
EMQ
242 0
MQTT X Newsletter 2022-06 | v1.8.0 发布,新增 MQTT CLI 和 MQTT WebSocket 工具
|
28天前
|
消息中间件 JSON Java
开发者如何使用轻量消息队列MNS
【10月更文挑战第19天】开发者如何使用轻量消息队列MNS
69 5
|
23天前
|
消息中间件 存储 Kafka
MQ 消息队列核心原理,12 条最全面总结!
本文总结了消息队列的12个核心原理,涵盖消息顺序性、ACK机制、持久化及高可用性等内容。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
|
1月前
|
消息中间件 安全 Java
云消息队列RabbitMQ实践解决方案评测
一文带你详细了解云消息队列RabbitMQ实践的解决方案优与劣
71 7
|
27天前
|
消息中间件
解决方案 | 云消息队列RabbitMQ实践获奖名单公布!
云消息队列RabbitMQ实践获奖名单公布!
|
1月前
|
消息中间件 存储 弹性计算
云消息队列RabbitMQ实践
云消息队列RabbitMQ实践