# MQTTX 1.9.2 发布：更出色的 MQTT 客户端工具箱

> v1.9.2 支持命令行工具的输出模式，用户可以根据需要自定义数据管道，从而更便捷、高效地处理输出数据。

> Language: zh-CN · Published: 2023-04-27 · Category: 版本发布 · Version: 1.9.2 · Canonical: https://mqttx.app/zh/blog/mqttx-v-1-9-2-release-notes · Translation: [English](https://mqttx.app/blog/mqttx-v-1-9-2-release-notes.md)

2023 年 4 月底，MQTTX 团队发布了全新的 1.9.2 版本，该版本支持命令行工具的输出模式，用户可以根据需要自定义数据管道，从而更便捷、高效地处理输出数据。本次更新还为桌面客户端引入了 YAML 格式数据的导入和导出，进一步提升了数据处理的灵活性和丰富度。同时，我们持续优化桌面客户端的用户体验，为 [MQTT](https://www.emqx.com/zh/blog/the-easiest-guide-to-getting-started-with-mqtt) 服务和应用的开发者提供更出色的工具箱！

## MQTTX CLI 增强

在早期版本的 MQTTX CLI 中，命令行客户端的输出不够灵活，结构固定，限制了用户在特定场景中直接利用输出数据。为解决这一问题，MQTTX v1.9.2 重点加强了命令行客户端 `sub` 命令的输出模式支持。它允许用户根据自身需求轻松定制数据管道，应对多样化的输出需求。新的 clean 模式允许用户输出完整的数据包，从而更便于使用 `jq` 等工具处理输出数据。例如，用户可以通过以下命令订阅主题并以 clean 模式输出数据：

```
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](https://assets.emqx.com/images/9f3f4a1a27abd60f7b8d180ee74fdd6e.png?x-image-process=image/resize,w_1520/format,webp)

## 桌面客户端增强

在 1.9.2 版本中，我们继续专注于改善桌面客户端的用户体验，主要优化包括：

1. 支持 YAML 格式数据：桌面客户端现已支持导入和导出 YAML 格式的数据，进一步提升了数据处理的灵活性和丰富度。
2. 为数据导出增加加载动画：为改善用户体验，我们为数据导出过程增加了加载动画，让用户在等待导出时能更清楚地了解当前进度。
3. 优化「关于 MQTT」页面的链接：为帮助用户更准确地找到所需的帮助内容，我们更新了「关于 MQTT」页面的链接，方便用户访问 MQTT 的详细信息和用法指南。
4. 修复用户属性数据的兼容性问题：我们解决了无法删除用户属性以及需要点击两次才能更新属性配置的问题，从而提升了属性配置的稳定性和兼容性。
5. 修复 MQTT 3.1.1 和 5.0 版本中用户名与密码的兼容性问题：我们修复了匿名连接时默认用户名未传递的问题，并增加了在 MQTT 3.1.1 连接中使用密码时校验是否需要填写用户名的支持，增强了不同 MQTT 版本之间的兼容性。
6. 修复选中连接的顺序问题：我们确保在离开页面并返回之前选中的连接时，用户可以在不同页面间切换后快速回到上次操作的连接，提升工作效率。
7. 为 [MQTT 5.0](https://www.emqx.com/zh/blog/introduction-to-mqtt-5) 连接使用[订阅选项](https://www.emqx.com/zh/blog/an-introduction-to-subscription-options-in-mqtt)时增加默认值，简化 MQTT 5.0 订阅操作并提升用户体验。
8. 优化历史主题的显示标题：我们修复了消息过长时选择框中主题消息的显示问题。
9. 修复消息换行的显示问题，提升消息可读性。
10. 优化各类提示消息的翻译，提升多语言支持的准确性。
11. 持续升级依赖项，以提升安全性和稳定性。

![MQTT 客户端 - MQTTX](https://assets.emqx.com/images/45c8239d2de33ef4ea195672086ebf3b.png?x-image-process=image/resize,w_1520/format,webp)

## 未来规划

MQTTX 仍在持续改进和增强，致力于为用户带来更多实用、强大的功能，为 IoT 应用和服务的测试与开发提供便利。接下来，我们将重点关注以下方向，敬请期待：

- 支持 Protobuf 消息格式
- 支持 SparkplugB
- IoT 场景数据模拟（IoT Data Simulator）
- QoS 0 消息存储的切换选项
- MQTT Debug 功能
- 自动为接收到的消息绘制图表
- 插件功能（协议扩展 CoAP、[MQTT-SN](https://www.emqx.com/zh/blog/connecting-mqtt-sn-devices-using-emqx) 等）
- 脚本测试自动化（Flow）
