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 中进行下载和安装
MQTT 服务器
搭建自己的 MQTT 服务器,详见 MQTT 消息服务器EMQX
如果您不需要本地部署的 MQTT Broker,那么可以使用 EMQX 的线上公开版进行快速测试。
Broker 地址: broker.emqx.io
Broker TCP 端口: 1883
Broker SSL 端口: 8883
建立连接
在准备好 MQTT Broker
后,进入到主程序页面,可点击左侧菜单栏中的 +
号,如果页面没有数据,还可以直接点击右侧的 新建连接
按钮,快速配置一个新的客户端连接。
进入到创建页面后,需配置或填写连接客户端的相关信息。
Broker 信息
配置 Broker
信息时,Client ID
、Host
和 Port
已经默认填写,您也可根据实际的 Broker
信息自行修改。点击 Client ID
右侧的刷新按钮,可快速生成新的 Client ID
。
Host
前的选择框,用来选择该连接的协议,支持 mqtt://
,ws://
,如果是 SSL/TLS
认证连接的话,需要修改为 mqtts://
,wss://
。
注意:当协议修改时,需要修改连接的端口。
用户认证信息
如果您的 Broker
开启了用户认证,配置项中可填写 Username
和 Password
信息。
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
的选项后,会启用更完整的证书验证连接,一般推荐在需要测试正式环境时启用。
高级配置
高级配置中,可以配置Connect Timeout
、KeepAlive
、Clean Session
、Auto Reconnect
、MQTT Version
等。
MQTT 5.0
在高级配置中,可以选择 MQTT 的协议版本,支持 MQTT v3.1.1 和 MQTT v5.0 版本, 如果选择了 v5.0 版本后,还可配置 Session Expiry Interval
、Receive Maximum
和 Topic Alias Maximu
等(可选)。
遗嘱消息
在高级配置下方的配置卡片中,可以配置遗嘱消息,Last-Will-QoS
和 Last-Will-Retain
的值默认填充为 0
和 False
,当您输入 Last-Will-Topic
和 Last-Will-Payload
的值后,就可以完成对遗嘱消息的配置。
消息的发布订阅
常用配置
连接成功后,即可进入到连接的主界面,点击顶部连接名称旁的折叠按钮,可以展开并显示该配置的几个基础信息,方便快速修改该连接的几个常用配置,修改时需断开连接,重新点击连接后即可生效,每次连接成功后,面板都会自动往上折叠。在断开连接的状态下,也可点击右边配置按钮,进行更多的连接配置修改。
添加订阅
点击左下角的 New Subscription
按钮,可以快速添加一个 Topic
,每个 Topic
都可以用一种颜色标记,可以随机生成或打开颜色选择器选择。订阅列表顶部的最右侧的按钮,可以隐藏订阅列表,来显示页面更多的空间。添加完成后,点击订阅列表中已经订阅的 Topic 项,可以实现消息过滤,消息视图内将只显示订阅了当前主题的消息内容,再次点击即可取消过滤;也可直接点击其它已订阅的 Topic
项,查看其对应的消息内容。而点击 Topic
名称,即可快速复制当前的 Topic
信息。当需要向该 Topic
发送消息时,只需快速粘贴到消息栏的 Topic
输入框内进行修改,便可快速完成该操作。
设置别名
在添加 Topic 时,可以给每个 Topic 设置一个别名,该选项为一个可选项,当设置并添加完成订阅后,订阅列表中的 Topic 数据将以别名展示,鼠标悬浮到 Topic 项时,提示框也会同时展示出该 Topic 的原值。这对于需要监控查看的多个 Topic 过长,无法分辩 Topic 的具体含义时,具有较强的帮助性。
订阅多个 Topic
我们打开订阅主题的弹出框后,在 Topic 输入框内,输入多个 Topic 并使用逗号(,)进行分割,点击确认订阅成功后,我们可以看到订阅列表中包含了多个 Topic。对于使用客户端层的别名功能也可以支持同时对多个 Topic 进行设置,同理使用逗号分隔(,)。
消息发送和接收
Topic
订阅成功后,就可以来测试消息的收发了。在页面右下角填入刚才所订阅的 Topic
信息(注意:输入框不显眼,容易遗漏),可选择 QoS
、Retain
的值,输入 payload
后,点击最右侧的发送按钮,就向刚才订阅的 Topic
发送了一条消息。发送成功后,也可以即时接收到刚才所发送的消息。注意,在消息框内,右边栏为发送的消息。左边栏为接收到的消息。macOS 用户可以使用 command + enter
快捷键,其它用户可以使用 control + enter
快捷键来快速发送消息。
消息栏的 payload
选项,可以快速将消息转化为多种格式,支持 Base64
,Hex
,JSON
和 Plaintext
。
至此就完成了一条 MQTT
消息的测试。