开始使用
准备 MQTT 服务器
公共 MQTT Broker
如果您不需要本地部署的 MQTT Broker,那么可以使用 EMQX 的线上公开版进行快速测试;
Broker 地址: broker.emqx.io
Broker TCP 端口: 1883
Broker SSL 端口: 8883
全托管的云原生 MQTT 消息服务
EMQX 是一款全托管的云原生 MQTT 消息服务,通过可靠、实时的物联网数据移动、处理和集成,连接您的海量物联网设备。可在几分钟内立即创建一个 MQTT 服务。
本地部署 MQTT Broker
如果您打算部署一个本地运行的 MQTT Broker,那么我们推荐您下载和使用 EMQX。EMQX 是一款云原生分布式物联网 MQTT 消息服务器,高效可靠连接海量物联网设备。
使用 Docker 快速安装 EMQX:
docker run -d --name emqx -p 1883:1883 -p 8083:8083 -p 8883:8883 -p 8084:8084 -p 18083:18083 emqx/emqx
快速建立连接
在准备好 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
的选项后,会启用更完整的证书验证连接,一般推荐在需要测试正式环境时启用。 -
高级配置
高级配置中,可以配置
连接超时时长
、KeepAlive
、Clean Session
、自动重连
、MQTT Version
等。 -
MQTT 5.0
在高级配置中,可以选择 MQTT 的协议版本,支持 MQTT v3.1.1 和 MQTT v5.0 版本,默认为 v3.1.1, 如果选择了 v5.0 版本后,还可配置
Session Expiry Interval
、Receive Maximum
和Topic Alias Maximu
(可选)。 -
遗嘱消息
在高级配置下方的配置卡片中,可以配置遗嘱消息,
Last-Will-QoS
和Last-Will-Retain
的值默认填充为 0 和False
,当您输入Last-Will-Topic
和Last-Will-Payload
的值后,就可以完成对遗嘱消息的配置。配置完成后,点击右上角的
Connect
按钮就可以快速创建一个连接并连接至 MQTT Broker。
消息的发布订阅
主界面
连接成功后,即可进入到连接的主界面,点击顶部连接名称旁的折叠按钮,可以展开并显示该配置的几个基础信息,方便快速修改该连接的几个常用配置,修改时需断开连接,重新点击连接后即可生效,每次连接成功后,面板都会自动往上折叠。在断开连接的状态下,也可点击右边配置按钮,进行更多的连接配置修改。
添加订阅
点击左下角的 New Subscription
按钮,可以快速添加一个 Topic
,每个 Topic
都可以用一种颜色标记,可以随机生成或打开颜色选择器选择。订阅列表顶部的最右侧的按钮,可以隐藏订阅列表,来显示页面更多的空间。添加完成后,点击订阅列表中已经订阅的 Topic 项,可以实现消息过滤,消息视图内将只显示订阅了当前主题的消息内容,再次点击即可取消过滤;也可直接点击其它已订阅的 Topic 项,查看其对应的消息内容。而点击 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
消息的测试。