v1.9.2 发布,CLI 支持输出模式,提升用户体验|MQTTX Newsletter 202304
在四月末,MQTTX 团队发布了全新的 1.9.2 版本,这一版本主要强化了命令行客户端的输出模式支持,使用户可以根据需求自定义数据管道(Data Pipeline),进而更加便捷和高效地处理输出数据。此次更新还为桌面客户端带来了对 YAML 格式数据倒入导出的支持,进一步提高了数据处理的灵活性和丰富性。同时,我们继续优化了桌面客户端的使用体验,为 MQTT 服务与应用的开发者们提供更加稳定、高效且易于使用的工具。
最新版本下载地址:Release v1.9.2 · emqx/MQTTX
命令行客户端
强化输出模式支持
在之前的 MQTTX CLI 的版本中,命令行客户端的输出结果是固定的,包含特定的结构。这限制了用户在某些情况下直接使用输出数据。为了解决这一问题,1.9.2 版本针对命令行客户端的订阅命令,重点强化了输出模式支持,允许用户根据需求自定义数据管道,从而轻松应对各种输出需求。
新增的简洁模式使用户能够输出完整的数据包,便于配合如 jq 等工具自由管理输出数据。例如,用户可以使用以下命令订阅主题并以简洁模式输出数据:
mqttx sub -t topic --output-mode clean | jq '.payload'
在 clean 输出模式下,我们可以得到一个完整的 MQTT 客户端可接收的数据包,然后使用 jq 工具过滤数据并输出简单的 payload 内容:
"Hello from MQTTX CLI"
此外,用户还可以使用更复杂的过滤条件,将接收到的数据自由重组:
mqttx sub -t topic --output-mode clean | jq '{topic, payload, retain: .packet.retain, userProperties: .packet.properties.userProperties}'
这样我们就可以得到一个自定义结构的数据:
{
"topic": "topic",
"payload": "Hello From MQTTX CLI",
"retain": true,
"userProperties": {
"name": "mqttx"
}
}
这一功能充分考虑了用户在使用命令行客户端时的便利性。通过增强输出模式支持,用户能够编写更加方便、高效的测试脚本来自定义数据管道,从而更快地完善各种 MQTT 服务与应用的开发和数据对接。如今,用户可以更灵活地处理输出数据,从而提高 MQTTX CLI 的实用性和易用性。
桌面客户端
在 1.9.2 版本中,我们针对桌面客户端进行了一系列改进,以提升用户体验。以下是本次更新中的主要优化内容:
- 支持 YAML 格式数据:桌面客户端现在支持导入和导出 YAML 格式的数据,进一步提高了数据处理的灵活性和丰富性。
- 增加导出数据的加载动画:为了提高用户体验,我们为数据导出过程添加了加载动画,让用户在等待数据导出时能够更加清晰地了解当前进度。
- 优化关于 MQTT 页面的链接更新:为了让用户能够更准确地找到所需的帮助内容,我们对关于 MQTT 页面的链接进行了更新,用户可以更方便地获取有关 MQTT 的详细信息和使用指南。
- 修复用户属性数据兼容性问题:解决了无法删除用户属性以及需要点击两次才能更新属性配置的问题,从而提高配置属性时的稳定性和兼容性。
- 修复用户名密码 3.1.1 和 5.0 版本的兼容问题:修复当匿名连接时不传入默认的用户名,并支持校验在 MQTT 3.1.1 连接中使用密码时需要填写用户名。增强在不同 MQTT 版本下的兼容性。
- 修复选择连接的顺序:保证离开页面后回到上一次选择的连接,这使得用户在切换不同页面后可以快速返回到上次操作的连接,提高工作效率。
- 当使用 MQTT 5.0 连接时,为订阅选项新增默认值,简化了 MQTT 5.0 订阅操作,提升了用户体验
- 优化历史主题的显示标题:修复主题消息过长时,在选择框内的显示。
- 修复消息换行的显示问题,提高了消息内容的易读性。
- 优化各项提示消息的翻译,提高多语言支持准确性。
- 升级依赖,持续提升安全性和稳定性。
未来规划
MQTTX 还在持续增强完善中,以期为用户带来更多实用、强大的功能,为物联网应用与服务的测试和开发提供便利。接下来我们将重点关注以下方面,敬请期待:
- 支持 Protobuf 的消息格式
- 支持 Sparkplug B
- IoT 场景数据模拟(IoT Data Simulator)
- 可配置忽略 QoS 0 的消息存储,以减少存储空间的占用
- MQTT Debug 功能
- 接收到的消息可以进行自动图表绘制
- 插件功能(协议扩展 CoAP,MQTT-SN 等)
- 脚本测试自动化(Flow)