开始使用

准备 MQTT 服务器

公共 MQTT Broker

如果您不需要本地部署的 MQTT Broker,那么可以使用 EMQX 的线上公开版进行快速测试;

Broker 地址: broker.emqx.io
Broker TCP 端口: 1883
Broker SSL 端口: 8883

全托管的云原生 MQTT 消息服务

EMQX 是一款全托管的云原生 MQTT 消息服务,通过可靠、实时的物联网数据移动、处理和集成,连接您的海量物联网设备。可在几分钟内立即创建一个 MQTT 服务。

14 天免费试用

本地部署 MQTT Broker

如果您打算部署一个本地运行的 MQTT Broker,那么我们推荐您下载和使用 EMQX。EMQX 是一款云原生分布式物联网 MQTT 消息服务器,高效可靠连接海量物联网设备。

立即本地下载和安装 EMQX

使用 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 后,进入到主程序页面,可点击左侧菜单栏中的 + 号,如果页面没有数据,还可以直接点击右侧的 新建连接 按钮,快速配置一个新的客户端连接。

mqttx-create

客户端相关信息

进入到创建页面后,需配置或填写连接客户端的相关信息。

  1. Broker 信息

    配置 Broker 信息时,Client IDHostPort 已经默认填写,您也可根据实际的 Broker 信息自行修改。点击 Client ID 右侧的刷新按钮,可快速生成新的 Client ID

    Host 前的选择框,用来选择该连接的协议,支持 mqtt://ws://,如果是 SSL/TLS 认证连接的话,需要修改为 mqtts://wss://

    注意:当协议修改时,需要修改连接的端口。

    mqttx-brokerinfo

  2. 用户认证信息

    如果您的 Broker 开启了用户认证,配置项中可填写 UsernamePassword 信息。

    mqttx-user

  3. SSL/TLS

    当需要开启 SSL/TLS 认证时,只需要将配置中的 SSL/TLS 配置项设置为 true,并提供了 CA signed selfSelf signed 两种方式。

    如果选择了 Self signed,可进行证书配置,点击最右侧的文件夹按钮,选择您已经生成好的各项证书,如果是单向连接,只需要选择您的 CA File 即可,如果是双向认证,还需要选择配置 Client Certificate FileClient key file。当开启 Strict validate Certificate 的选项后,会启用更完整的证书验证连接,一般推荐在需要测试正式环境时启用。

    mqttx-certs

  4. 高级配置

    高级配置中,可以配置连接超时时长KeepAliveClean Session自动重连MQTT Version 等。

  5. MQTT 5.0

    在高级配置中,可以选择 MQTT 的协议版本,支持 MQTT v3.1.1 和 MQTT v5.0 版本,默认为 v3.1.1, 如果选择了 v5.0 版本后,还可配置 Session Expiry IntervalReceive MaximumTopic Alias Maximu(可选)。

    mqttx-v5

  6. 遗嘱消息

    在高级配置下方的配置卡片中,可以配置遗嘱消息,Last-Will-QoSLast-Will-Retain 的值默认填充为 0 和 False,当您输入 Last-Will-TopicLast-Will-Payload 的值后,就可以完成对遗嘱消息的配置。

    mqttx-willmessage

    配置完成后,点击右上角的 Connect 按钮就可以快速创建一个连接并连接至 MQTT Broker。

消息的发布订阅

主界面

连接成功后,即可进入到连接的主界面,点击顶部连接名称旁的折叠按钮,可以展开并显示该配置的几个基础信息,方便快速修改该连接的几个常用配置,修改时需断开连接,重新点击连接后即可生效,每次连接成功后,面板都会自动往上折叠。在断开连接的状态下,也可点击右边配置按钮,进行更多的连接配置修改。

mqttx-main

添加订阅

点击左下角的 New Subscription 按钮,可以快速添加一个 Topic,每个 Topic 都可以用一种颜色标记,可以随机生成或打开颜色选择器选择。订阅列表顶部的最右侧的按钮,可以隐藏订阅列表,来显示页面更多的空间。添加完成后,点击订阅列表中已经订阅的 Topic 项,可以实现消息过滤,消息视图内将只显示订阅了当前主题的消息内容,再次点击即可取消过滤;也可直接点击其它已订阅的 Topic 项,查看其对应的消息内容。而点击 Topic 名称,即可快速复制当前的 Topic 信息。当需要向该 Topic 发送消息时,只需快速粘贴到消息栏的 Topic 输入框内进行修改,便可快速完成该操作。

mqttx-topic

在添加 Topic 时,可以给每个 Topic 设置一个别名,该选项为一个可选项,当设置并添加完成订阅后,订阅列表中的 Topic 数据将以别名展示,鼠标悬浮到 Topic 项时,提示框也会同时展示出该 Topic 的原值。这对于需要监控查看的多个 Topic 过长,无法分辩 Topic 的具体含义时,具有较强的帮助性。

mqttx-topic-alias

我们打开订阅主题的弹出框后,在 Topic 输入框内,输入多个 Topic 并使用逗号(,)进行分割,点击确认订阅成功后,我们可以看到订阅列表中包含了多个 Topic。对于使用客户端层的别名功能也可以支持同时对多个 Topic 进行设置,同理使用逗号分隔(,)。

mqttx-muti-topics

订阅过的主题支持编辑/禁用/启用,右键点击已经订阅过的 Topic 列表项,在右键菜单中我们可以快速选择编辑、禁用或启用等操作。当订阅的 Topic 过多时,有时候不是所有的 Topic 消息都想要接收到,为了避免再次订阅相同 Topic,提供了禁用功能,如需重新接收该 Topic 的消息,只需再次启用即可。

mqttx-edit-topic

消息发送和接收

Topic 订阅成功后,就可以来测试消息的收发了。在页面右下角填入刚才所订阅的 Topic 信息,可选择 QoSRetain 的值,输入 payload 后,点击最右侧的发送按钮,就向刚才订阅的 Topic 发送了一条消息。发送成功后,也可以即时接收到刚才所发送的消息。注意,在消息框内,右边栏为发送的消息。左边栏为接收到的消息。macOS 用户可以使用 command + enter 快捷键,其它用户可以使用 control + enter 快捷键来快速发送消息。

消息栏的 payload 选项,可以快速将消息转化为多种格式,支持 Base64HexJSONPlaintext

mqttx-message

至此就完成了一条 MQTT 消息的测试。