MQTT X 是 EMQ 开源的一款优雅的跨平台 MQTT 5.0 桌面客户端,它支持 macOS, Linux, Windows。MQTT X 的 UI 采用了聊天界面形式,简化了页面操作逻辑,用户可以快速创建连接,允许保存多个客户端,方便用户快速测试 MQTT/MQTTS 连接,及 MQTT 消息的订阅和发布。
简介
特点
跨平台,支持 Windows,macOS,Linux
支持 MQTT v3.1.1 以及 MQTT v5.0
支持 CA、自签名证书,以及单、双向 SSL 认证
多主题 Light、Dark、Night(Purple)三种主题模式切换
支持简体中文以及英文
支持 WebSocket 连接至 MQTT 服务器
订阅 Topic 时可自定义颜色标记
支持 $SYS 主题自动订阅,并可按层级展开
支持多种 Payload 格式 Hex, Base64, JSON, Plaintext
下载安装
可在 MQTTX 官网 首页内进行下载和安装
可在 EMQ 官方网站的下载页面内进行下载和安装
可在 GitHub Releases 中进行下载和安装
![[]](https://www.zhangqin.tech/2022/08/05/%E7%89%A9%E8%81%94%E7%BD%91/MQTT/MQTT-%E4%BD%BF%E7%94%A8MQTTX%E5%AE%9E%E7%8E%B0%E6%B6%88%E6%81%AF%E7%9A%84%E5%8F%91%E5%B8%83%E4%B8%8E%E8%AE%A2%E9%98%85/MQTTX-%E4%B8%BB%E9%A1%B5.png)
MQTT 服务器
搭建自己的 MQTT 服务器,详见 MQTT 消息服务器EMQX
如果您不需要本地部署的 MQTT Broker,那么可以使用 EMQX 的线上公开版进行快速测试。
Broker 地址: broker.emqx.io
Broker TCP 端口: 1883
Broker SSL 端口: 8883建立连接
在准备好 MQTT Broker 后,进入到主程序页面,可点击左侧菜单栏中的 + 号,如果页面没有数据,还可以直接点击右侧的 新建连接 按钮,快速配置一个新的客户端连接。
![[]](https://www.zhangqin.tech/2022/08/05/%E7%89%A9%E8%81%94%E7%BD%91/MQTT/MQTT-%E4%BD%BF%E7%94%A8MQTTX%E5%AE%9E%E7%8E%B0%E6%B6%88%E6%81%AF%E7%9A%84%E5%8F%91%E5%B8%83%E4%B8%8E%E8%AE%A2%E9%98%85/MQTTX-%E6%96%B0%E5%BB%BA%E8%BF%9E%E6%8E%A5.png)
进入到创建页面后,需配置或填写连接客户端的相关信息。
Broker 信息
配置 Broker 信息时,Client ID、Host 和 Port 已经默认填写,您也可根据实际的 Broker 信息自行修改。点击 Client ID 右侧的刷新按钮,可快速生成新的 Client ID。
Host 前的选择框,用来选择该连接的协议,支持 mqtt://,ws://,如果是 SSL/TLS 认证连接的话,需要修改为 mqtts://,wss://。
注意:当协议修改时,需要修改连接的端口。
![[]](https://www.zhangqin.tech/2022/08/05/%E7%89%A9%E8%81%94%E7%BD%91/MQTT/MQTT-%E4%BD%BF%E7%94%A8MQTTX%E5%AE%9E%E7%8E%B0%E6%B6%88%E6%81%AF%E7%9A%84%E5%8F%91%E5%B8%83%E4%B8%8E%E8%AE%A2%E9%98%85/MQTTX-Broker-%E8%BF%9E%E6%8E%A5%E4%BF%A1%E6%81%AF.png)
用户认证信息
如果您的 Broker 开启了用户认证,配置项中可填写 Username 和 Password 信息。
![[]](https://www.zhangqin.tech/2022/08/05/%E7%89%A9%E8%81%94%E7%BD%91/MQTT/MQTT-%E4%BD%BF%E7%94%A8MQTTX%E5%AE%9E%E7%8E%B0%E6%B6%88%E6%81%AF%E7%9A%84%E5%8F%91%E5%B8%83%E4%B8%8E%E8%AE%A2%E9%98%85/MQTTX-%E7%94%A8%E6%88%B7%E8%AE%A4%E8%AF%81%E4%BF%A1%E6%81%AF.png)
SSL/TLS
当需要开启 SSL/TLS 认证时,只需要将配置中的 SSL/TLS 配置项设置为 true,并提供了 CA signed self 和 Self signed 两种方式。
如果选择了 Self signed,可进行证书配置,点击最右侧的文件夹按钮,选择您已经生成好的各项证书,如果是单向连接,只需要选择您的 CA File 即可,如果是双向认证,还需要选择配置 Client Certificate File 和 Client key file。当开启 Strict validate Certificate 的选项后,会启用更完整的证书验证连接,一般推荐在需要测试正式环境时启用。
![[]](https://www.zhangqin.tech/2022/08/05/%E7%89%A9%E8%81%94%E7%BD%91/MQTT/MQTT-%E4%BD%BF%E7%94%A8MQTTX%E5%AE%9E%E7%8E%B0%E6%B6%88%E6%81%AF%E7%9A%84%E5%8F%91%E5%B8%83%E4%B8%8E%E8%AE%A2%E9%98%85/MQTTX-SSL-TLS.png)
高级配置
高级配置中,可以配置Connect Timeout、KeepAlive、Clean Session、Auto Reconnect、MQTT Version 等。
![[]](https://www.zhangqin.tech/2022/08/05/%E7%89%A9%E8%81%94%E7%BD%91/MQTT/MQTT-%E4%BD%BF%E7%94%A8MQTTX%E5%AE%9E%E7%8E%B0%E6%B6%88%E6%81%AF%E7%9A%84%E5%8F%91%E5%B8%83%E4%B8%8E%E8%AE%A2%E9%98%85/MQTTX-%E9%AB%98%E7%BA%A7%E9%85%8D%E7%BD%AE.png)
MQTT 5.0
在高级配置中,可以选择 MQTT 的协议版本,支持 MQTT v3.1.1 和 MQTT v5.0 版本, 如果选择了 v5.0 版本后,还可配置 Session Expiry Interval、Receive Maximum 和 Topic Alias Maximu等(可选)。
![[]](https://www.zhangqin.tech/2022/08/05/%E7%89%A9%E8%81%94%E7%BD%91/MQTT/MQTT-%E4%BD%BF%E7%94%A8MQTTX%E5%AE%9E%E7%8E%B0%E6%B6%88%E6%81%AF%E7%9A%84%E5%8F%91%E5%B8%83%E4%B8%8E%E8%AE%A2%E9%98%85/MQTTX-MQTT-5.0.png)
遗嘱消息
在高级配置下方的配置卡片中,可以配置遗嘱消息,Last-Will-QoS 和 Last-Will-Retain 的值默认填充为 0 和 False,当您输入 Last-Will-Topic 和 Last-Will-Payload 的值后,就可以完成对遗嘱消息的配置。
![[]](https://www.zhangqin.tech/2022/08/05/%E7%89%A9%E8%81%94%E7%BD%91/MQTT/MQTT-%E4%BD%BF%E7%94%A8MQTTX%E5%AE%9E%E7%8E%B0%E6%B6%88%E6%81%AF%E7%9A%84%E5%8F%91%E5%B8%83%E4%B8%8E%E8%AE%A2%E9%98%85/MQTTX-%E9%81%97%E5%98%B1%E6%B6%88%E6%81%AF.png)
消息的发布订阅
常用配置
连接成功后,即可进入到连接的主界面,点击顶部连接名称旁的折叠按钮,可以展开并显示该配置的几个基础信息,方便快速修改该连接的几个常用配置,修改时需断开连接,重新点击连接后即可生效,每次连接成功后,面板都会自动往上折叠。在断开连接的状态下,也可点击右边配置按钮,进行更多的连接配置修改。
![[]](https://www.zhangqin.tech/2022/08/05/%E7%89%A9%E8%81%94%E7%BD%91/MQTT/MQTT-%E4%BD%BF%E7%94%A8MQTTX%E5%AE%9E%E7%8E%B0%E6%B6%88%E6%81%AF%E7%9A%84%E5%8F%91%E5%B8%83%E4%B8%8E%E8%AE%A2%E9%98%85/MQTTX-Broker-%E5%B8%B8%E7%94%A8%E9%85%8D%E7%BD%AE.png)
添加订阅
点击左下角的 New Subscription 按钮,可以快速添加一个 Topic,每个 Topic 都可以用一种颜色标记,可以随机生成或打开颜色选择器选择。订阅列表顶部的最右侧的按钮,可以隐藏订阅列表,来显示页面更多的空间。添加完成后,点击订阅列表中已经订阅的 Topic 项,可以实现消息过滤,消息视图内将只显示订阅了当前主题的消息内容,再次点击即可取消过滤;也可直接点击其它已订阅的 Topic 项,查看其对应的消息内容。而点击 Topic 名称,即可快速复制当前的 Topic 信息。当需要向该 Topic 发送消息时,只需快速粘贴到消息栏的 Topic 输入框内进行修改,便可快速完成该操作。
![[]](https://www.zhangqin.tech/2022/08/05/%E7%89%A9%E8%81%94%E7%BD%91/MQTT/MQTT-%E4%BD%BF%E7%94%A8MQTTX%E5%AE%9E%E7%8E%B0%E6%B6%88%E6%81%AF%E7%9A%84%E5%8F%91%E5%B8%83%E4%B8%8E%E8%AE%A2%E9%98%85/MQTTX-%E6%B7%BB%E5%8A%A0%E8%AE%A2%E9%98%85.png)
设置别名
在添加 Topic 时,可以给每个 Topic 设置一个别名,该选项为一个可选项,当设置并添加完成订阅后,订阅列表中的 Topic 数据将以别名展示,鼠标悬浮到 Topic 项时,提示框也会同时展示出该 Topic 的原值。这对于需要监控查看的多个 Topic 过长,无法分辩 Topic 的具体含义时,具有较强的帮助性。
![[]](https://www.zhangqin.tech/2022/08/05/%E7%89%A9%E8%81%94%E7%BD%91/MQTT/MQTT-%E4%BD%BF%E7%94%A8MQTTX%E5%AE%9E%E7%8E%B0%E6%B6%88%E6%81%AF%E7%9A%84%E5%8F%91%E5%B8%83%E4%B8%8E%E8%AE%A2%E9%98%85/MQTTX-%E8%AE%BE%E7%BD%AE%E5%88%AB%E5%90%8D.png)
订阅多个 Topic
我们打开订阅主题的弹出框后,在 Topic 输入框内,输入多个 Topic 并使用逗号(,)进行分割,点击确认订阅成功后,我们可以看到订阅列表中包含了多个 Topic。对于使用客户端层的别名功能也可以支持同时对多个 Topic 进行设置,同理使用逗号分隔(,)。
![[]](https://www.zhangqin.tech/2022/08/05/%E7%89%A9%E8%81%94%E7%BD%91/MQTT/MQTT-%E4%BD%BF%E7%94%A8MQTTX%E5%AE%9E%E7%8E%B0%E6%B6%88%E6%81%AF%E7%9A%84%E5%8F%91%E5%B8%83%E4%B8%8E%E8%AE%A2%E9%98%85/MQTTX-%E8%AE%A2%E9%98%85%E5%A4%9A%E4%B8%AATOPIC.png)
消息发送和接收
Topic 订阅成功后,就可以来测试消息的收发了。在页面右下角填入刚才所订阅的 Topic 信息(注意:输入框不显眼,容易遗漏),可选择 QoS、Retain 的值,输入 payload 后,点击最右侧的发送按钮,就向刚才订阅的 Topic 发送了一条消息。发送成功后,也可以即时接收到刚才所发送的消息。注意,在消息框内,右边栏为发送的消息。左边栏为接收到的消息。macOS 用户可以使用 command + enter 快捷键,其它用户可以使用 control + enter 快捷键来快速发送消息。
消息栏的 payload 选项,可以快速将消息转化为多种格式,支持 Base64,Hex,JSON 和 Plaintext。
![[]](https://www.zhangqin.tech/2022/08/05/%E7%89%A9%E8%81%94%E7%BD%91/MQTT/MQTT-%E4%BD%BF%E7%94%A8MQTTX%E5%AE%9E%E7%8E%B0%E6%B6%88%E6%81%AF%E7%9A%84%E5%8F%91%E5%B8%83%E4%B8%8E%E8%AE%A2%E9%98%85/MQTTX-%E6%B6%88%E6%81%AF%E5%8F%91%E9%80%81%E5%92%8C%E6%8E%A5%E6%94%B6.png)
至此就完成了一条 MQTT 消息的测试。