1.使用MQTT协议模拟向设备推送消息

在测试推送数据之前,我们需要了解一下基本流程。我们和设备实际上都是客户端,而EMQX就像是一个消息中转站。它负责根据不同的主题(topic)来决定将消息推送到哪个设备。简单来说,EMQX就相当于快递小哥,根据不同的地址(主题)将快送到指定位置

这里我们会使用到 MQTTX 这款工具 ,专为帮助开发者和测试人员简化 MQTT 消息协议的调试和开发而设计。它支持跨平台使用,并提供了一个图形用户界面(GUI),使得用户能够轻松地连接到 MQTT 代理(Broker)、发布和订阅消息、调试设备通信等。

MQTTX下载地址: MQTTX 下载

快速建立连接

在设置好 MQTT Broker 后,打开主程序页面,点击左侧菜单栏的 + 按钮。如果页面为空,您也可以直接点击右侧的 新建连接 按钮来快速设定新的客户端连接。

客户端连接信息

在创建页面,需要设定或填写连接客户端的相关信息。

  1. Broker 信息
    Client IDHostPort 已经默认填写在 Broker 信息栏中,您可以根据实际的 Broker 信息自行修改。点击 Client ID 右侧的刷新按钮,可以迅速生成新的 Client ID
    选择框位于 Host 前面,用以选择该连接的协议,支持 mqtt://ws://。如果使用 SSL/TLS 连接,需要修改为 mqtts://wss://
    注意:当协议更改时,需要修改连接的端口。

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

  3. SSL/TLS
    如果需要开启 SSL/TLS 认证,在配置中开启 SSL/TLS,并提供 CA signed serverSelf signed 中的一种方式。
    若选择 Self signed,需要进行证书配置。点击最右侧的文件夹按钮,选择您已经生成好的各项证书。若是单向连接,只需选择您的 CA File。若是双向认证,还需要选择配置 Client Certificate FileClient key file。开启 Strict validate Certificate 选项后,将启用更完整的证书验证连接。此选项建议在需要测试正式环境时启用。


    关于使用 SSL 安全开关
    SSL 安全开关是您 MQTT 配置中的一个选项,用于确定是否在建立连接时验证服务端证书链和地址名称。当将该开关设置为关闭时,将不会进行验证,即允许连接到未经验证的服务器。
    SSL 安全开关的使用场景:
    1. 开发环境:在开发环境中,为了方便测试和调试,可以关闭 SSL 安全开关,允许连接到未经验证的服务器。
    2. 内部网络:在受信任的内部网络环境中,如果没有外部访问风险,可以考虑关闭 SSL 安全开关,简化证书管理和验证过程。

  1. 需要注意的是,关闭 SSL 安全开关会降低连接的安全性。在生产环境或与外部网络通信时,建议打开 SSL 安全开关,确保通信的安全性和数据保护。
  2. 高级配置
    在高级配置中,可以设置 连接超时时长KeepAliveClean Session自动重连MQTT 版本 等。
  3. MQTT 5.0
    在高级配置中,您可以选择 MQTT 的协议版本,支持 MQTT v3.1.1 和 MQTT v5.0。默认版本为 v3.1.1。如果选择了 v5.0,还可以配置 Session Expiry IntervalReceive MaximumTopic Alias Maximum(可选)。

  4. 遗嘱消息
    在高级配置下方的配置卡片中,您可以配置遗嘱消息。Last-Will-QoSLast-Will-Retain 的值默认为 0 和 False。当您输入 Last-Will-TopicLast-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 信息,可选择 QoSRetain 的值,输入 payload 后,点击最右侧的发送按钮,就向刚才订阅的 Topic 发送了一条消息。发送成功后,您也可以立即接收到刚才所发送的消息。注意,消息框内,右侧是发送的消息,左侧是接收到的消息。对于 macOS 用户,您可以使用 command + enter 快捷键,其它用户可以使用 control + enter 快捷键来快速发送消息。

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Max恒

为了开源加油 ! !

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值