# MQTTX 1.11.1 发布: 可视化功能增强

> 该版本增强了 MQTTX 的可视化功能，改进了主题树功能和实时流量监控。新增的流量速率监控功能为用户提供实时数据包追踪，主题树现在支持与连接列表的手动同步以及 MQTT 属性显示。

> Language: zh-CN · Published: 2024-12-20 · Category: 版本发布 · Version: 1.11.1 · Canonical: https://mqttx.app/zh/blog/mqttx-1-11-1-release-notes · Translation: [English](https://mqttx.app/blog/mqttx-1-11-1-release-notes.md)

MQTTX 1.11.1 现已正式发布！

该版本增强了 MQTTX 的可视化功能，改进了主题树功能和实时流量监控。新增的流量速率监控功能为用户提供实时数据包追踪，主题树现在支持与连接列表的手动同步以及 [MQTT](https://www.emqx.com/zh/blog/the-easiest-guide-to-getting-started-with-mqtt) 属性显示。此外，我们还解决了桌面客户端中消息渲染丢失的问题，以确保更稳定的使用体验。

> 在此下载最新版本：[https://mqttx.app/zh/downloads](https://mqttx.app/zh/downloads)

## 连接数据同步至主题树

MQTTX 现在提供主题树和连接消息列表之间的双向同步功能。新消息会自动反映在主题树中，用户还可以手动同步来自连接的历史消息。同步可通过以下两种方式实现：

![image.png](https://assets.emqx.com/images/c6bd0525214b9ac4967bd2a255fb6f60.png?x-image-process=image%2Fresize,w_1536%2Fformat,webp)

**从连接页面**

- 在右上角点击下拉菜单，选择"同步主题树"
- 确认后，当前连接的历史消息将自动转换为主题树结构

![image.png](https://assets.emqx.com/images/ae1d2da789e7fbc5e115120e4814cd70.png?x-image-process=image%2Fresize,w_1536%2Fformat,webp)

**从主题树视图**

- 在右上角下拉菜单中点击"同步连接数据"
- 选择要同步的目标连接
- 主题树将更新以显示同步后的数据

![image.png](https://assets.emqx.com/images/2be6aee960852df537fa62723aba1edd.png?x-image-process=image%2Fresize,w_1536%2Fformat,webp)

## 视图器中的流量监控

我们将 ”字节统计” 功能重新定位到了视图器菜单中的 “流量监控”，同时增加了新的速率监控功能，这将增强对 MQTT 服务的流量监控能力。该功能现在可以根据连接记录中的历史消息自动计算流量总量和速率，为您的 MQTT 流量模式提供更深入的洞察。

**快速访问**

- 点击连接页面右上角的流量监控图标
- 通过左侧菜单栏的 `Viewer` -&gt; `Traffic Monitor` 进行导航

从连接页面访问时，MQTTX 会自动订阅 `$SYS/#` 系统主题。如果直接从菜单访问，则需要手动订阅。

**主要功能**

- 根据连接消息历史自动计算速率
- 用于监控多个连接的连接选择器
- 灵活的时间范围选择
- 包括累计值和实时速率的综合统计数据

**统计显示**

- **累计值**：查看总字节数及其趋势可视化

  ![image.png](https://assets.emqx.com/images/102fca0ee78cfda63d5e07f28c884712.png?x-image-process=image%2Fresize,w_1536%2Fformat,webp)

- **速率统计**：监控当前发送/接收速率，包括基于时间的平均值和实时数据包同步

  ![image.png](https://assets.emqx.com/images/37aeea11a1713b3ca17fe085be6a2924.png?x-image-process=image%2Fresize,w_1536%2Fformat,webp)

> 注意：默认情况下，EMQX 仅允许本地客户端订阅 $SYS 主题。如需远程访问，需要修改 ACL 规则。详细配置请参考 [EMQX 文档](https://docs.emqx.com/zh/emqx/latest/guides/access-control/authz/authz.html)。

## 折叠模式下的连接选择

为了提升工作区的使用效率，我们在左侧边栏折叠时新增了连接选择器下拉菜单。用户无需展开连接列表即可在主视图中快速切换不同连接，既保持了连接的便捷访问，又最大化了消息查看区域的使用。

![image.png](https://assets.emqx.com/images/89c5fbdac854c25a781f50915d690c3a.png?x-image-process=image%2Fresize,w_1536%2Fformat,webp)

## CLI 行模式和管道能力增强

在新版本中我们引入了 `--line-mode`（`-lm`）来简化 CLI 的多行消息发布功能。这个新选项取代了之前较为复杂的 `--stdin`（`-s`）和 `--message-by-message`（`-M`）组合，使 CLI 的使用变得更加直观，同时保留了所有现有功能。

**改进功能**

- 新增的 `-line-mode` 选项简化了原本需要 `s` 和 `M` 组合的操作
- 强化了与类 Unix 系统的管道支持集成
- 优化多行数据的日志显示效果
- 解决了使用 `s` 和 `M` 选项读取文件时的显示异常

**使用示例**

```text
# 新的简化方式
mqttx pub -t "hello" -lm
hello     # 立即发送
world     # 每行作为单独消息
<Ctrl+C>  # 结束输入

# 之前的方法（仍然支持）
mqttx pub -t 'hello' -s -M
```

此外，您还可以通过之前的 `--stdin`（`-s`）和 `--multiline`（`-M`）选项实现更多数据输入方式：

```text
# 从 echo 发送单条消息
echo "hello world" | mqttx pub -t "test" -s

# 将文件内容作为一条消息发送
cat message.txt | mqttx pub -t "test" -s

# 将文件内容按行分别发送
cat message.txt | mqttx pub -t "test" -s -M
# 结果显示：
# 消息1：第1行
# 消息2：第2行
# 消息3：第3行
```

> 注意：熟悉 -s 和 -M 的用户可以继续使用这些选项，它们已得到改进并提供更好的管道支持。新增的 --line-mode 选项则提供了更简便的单命令操作方式。

## 其他改进

### 关键修复

- 修复了显示界面中的消息渲染问题，确保消息显示的可靠性和界面数据的完整性

### 桌面端改进

- 主题树功能升级，增加 MQTT 属性显示功能，提供更全面的消息上下文和元数据可视化
- 为消息发送按钮添加速率限制，防止意外的消息洪泛，提升系统稳定性
- 视觉元素优化：

  - 主题树滚动条样式改进
  - 主题提示工具的显示时机优化
  - 修复树形视图中的工具提示溢出问题
  - 修复未读消息计数初始化异常

### CLI 增强

- 优化基准测试和模拟功能，支持自定义客户端 ID，确保每个连接都有唯一标识符
- 优化并添加连接退出提示，使连接会话管理更直观友好
- 修复关键问题：

  - 解决配置覆盖导致的命令行为冲突
  - 修复二进制文件接收异常
  - 解决多行消息发布时的管道问题

## 未来规划

- **MQTTX 2.0 重构**正在进行中
- **数据负载图表可视化增强 - MQTTX 视图器**：

  - **差异视图**：轻松比较不同消息或数据负载
  - **仪表盘视图**：提供可自定义的 MQTT 活动概览，实现个性化数据洞察
  - **JSON 视图**：改进 JSON 格式数据的处理和显示
  - **系统主题视图**：专门用于系统相关 MQTT 主题的视图

- **AMQP 支持**：扩展协议支持以包含 AMQP
- **可配置断开连接属性支持（MQTT 5.0）**：通过自定义断开连接设置增强连接管理
- **物联网场景数据模拟**：将此功能引入桌面客户端，简化物联网场景测试
- **Sparkplug B 支持**：扩展 MQTTX 功能以支持 Sparkplug B
- **MQTT GUI 调试功能**：新增协助 MQTT 通信调试的功能
- **插件功能**：引入支持 [CoAP](https://www.emqx.com/zh/blog/coap-protocol) 和 MQTT-SN 等协议扩展的插件系统
- **JSON Schema**：JSON Schema 的编码和解码功能
- **脚本测试自动化（Flow）**：简化自动化测试工作流的创建和管理
