# MQTTX v1.8.3 正式发布

> MQTT X v1.8.3 优化了 MQTT 5.0 Clean Start 的使用方式，为会话过期间隔添加默认值；同时也改进了 MQTT X CLI 的默认输出显示。

> Language: zh-CN · Published: 2022-10-20 · Category: 版本发布 · Version: 1.8.3 · Canonical: https://mqttx.app/zh/blog/mqttx-v-1-8-3-release-notes · Translation: [English](https://mqttx.app/blog/mqttx-v-1-8-3-release-notes.md)

近日，MQTTX 发布了最新的 [1.8.3](https://github.com/emqx/MQTTX/releases/tag/v1.8.3) 版本，主要对功能使用进行了优化，并修复了使用过程中所出现的各类问题。例如，优化了 [MQTT](https://www.emqx.com/zh/blog/the-easiest-guide-to-getting-started-with-mqtt) 5.0 Clean Start 的使用方式，为会话过期间隔添加默认值；优化 MQTTX CLI 的默认输出显示，提供更加细致美观的内容展示等。

## MQTTX 桌面端应用

### 优化 Clean Start 使用

MQTTX 作为一款 MQTT 5.0 客户端工具，目前默认使用 MQTT 5.0 连接测试。在 MQTT 5.0 中，`Clean Session` 修改为了 `Clean Start`，并需要搭配会话过期间隔一起来使用。而在当前 1.8.2 版本中，当使用默认连接时，如果用户未设置会话过期间隔，断开连接时 [MQTT Broker](https://www.emqx.com/zh/blog/the-ultimate-guide-to-mqtt-broker-comparison) 将无法持久化其会话。对于很多不太了解 MQTT 5.0 新特性使用的用户来说，这带来了一些困扰。

目前开发的 1.8.3 版本优化了该问题，将 `Clean Session` 的显示修改为了 `Clean Start`，当关闭 `Clean Start` 时，会话过期间隔默认设置为 `永不过期`，当开启后，设置为 0 的默认值，表示用不保存会话。同时也继续支持用户手动修改该值，来满足当前测试需求。同时提示用户：当关闭 `Clean Start` 时，如果该值为空，还需设置会话过期间隔来保证其连接会话的正确使用。

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

### 其它使用问题优化

- 统一 true 和 false 的选择器为开关组件
- 优化 SSL/TLS 开关的使用问题
- 优化了禁止删除正在使用中的脚本
- 修复当断开连接时，收到的保留消息未能保存的问题
- 修复当 Hex 格式出现空格时，内容会被截断的问题，并支持格式化输出 Hex 数据
- 修复当设置了主题别名后，无法接收到消息的问题
- 修复一些内部错误

## MQTTX Web

在线 MQTT 5.0 客户端工具 MQTTX Web 进行了如下更新：

- 支持存储发送过的历史消息
- 支持单条消息复制和删除
- 支持使用 Docker 部署到任意 URL 路径下
- 支持多主题订阅
- 支持开启和关闭自动滚动
- 支持设置订阅标识符和订阅选项
- 支持设置重连周期

在线使用地址：[https://mqttx.app/web-client/](https://mqttx.app/web-client/)

## MQTTX CLI

### 支持多主题订阅

在 MQTTX 的桌面客户端中，我们提供了多主题订阅功能。在 1.8.3 版本中，[命令行工具 MQTTX CLI](https://mqttx.app/zh/cli) 同样支持了多主题订阅，只要输入多个 `--topic` 参数，即可在使用一条命令行的情况下同时订阅多个主题，接收不同主题下的消息内容来测试和查看数据。

![MQTT CLI 多主题订阅](https://assets.emqx.com/images/ed0e82a31cb7319dd3e4e54d923a0f56.png?x-image-process=image%2Fresize,w_1536%2Fformat,webp)

### 优化 CLI 的内容输出

在命令行终端内，我们优化了 MQTTX CLI 的显示内容。在 1.8.3 版本中，我们为每一个步骤输出的内容都提供了时间显示，并细化其步骤显示。例如，当使用 `sub` 和 `pub` 命令时，也能看到连接中和已连接的过程。使用类似于日志输出的方式，可以提高用户的阅读体验，帮助用户更加清晰方便地查看当前连接测试的过程与内容。

![优化 MQTT CLI 的内容输出](https://assets.emqx.com/images/d28d110dad3ee7a6bcf0e9ea0ca25820.png?x-image-process=image%2Fresize,w_1536%2Fformat,webp)

### 其它优化

- 添加主题验证，用户不能向包含有 # 和 + 等，带有通配符的主题发送消息
- 当使用 `--version` 参数来输出版本时，将输出带有 changelogs 的地址，方便用户快速查看该版本下的最新功能
- 添加了 `check` 命令来检查是否有新版本可以更新
- 添加更多的 MQTT 5.0 properties 配置，例如支持设置会话过期间隔
- 修复用户属性在 `pub` 和 `sub` 命令中设置错误的问题

## 未来规划

MQTTX 还在持续增强完善中，以期为用户带来更多实用、强大的功能，为物联网平台的测试和开发提供便利。

接下来我们将重点关注以下方面：

- MQTTX CLI 将支持 bench 命令
- 使用体验升级
- 接收到的数据支持自定义图表化
- 插件系统（例如支持 SparkPlug B、集成 MQTTX CLI）
- 脚本功能优化
- 推出 MQTTX Mobile 移动端应用
- 完善 MQTTX Web 功能
- MQTT Debug 功能
