MQTT 快速入门
连接两个客户端,发布一条 JSON 消息,并在 Trace 中验证消息闭环。
- 作者:
- Mqttable
- 更新:
本页目录12 个章节
加载中...
连接两个客户端,发布一条 JSON 消息,并在 Trace 中验证消息闭环。
加载中...
本教程从下载安装开始,到 subscriber 收到相同的 JSON 消息、Trace 显示 QoS 1 确认时结束。教程使用你拥有或获授权使用的 127.0.0.1:1883 本地测试 Broker;Mqttable 不内置 MQTT Broker。
打开 Mqttable 下载页,选择与操作系统和 CPU 匹配的安装包,并在打开前使用校验下载对比 SHA-256。当前版本支持 macOS 15 或更高版本的 Apple Silicon Mac,以及 Linux x86_64 AppImage 和 DEB。Windows 和 Intel Mac 不是当前发布目标。
安装完成后,打开 Mqttable。全新安装会进入 Local Runtime 的 Connections 工作区。页面显示暂无 Broker后再继续。

全新安装会打开尚未配置 Broker 的 Connections 工作区。
选择立即连接。
本教程假设你拥有或获授权使用的 Broker 正在 127.0.0.1:1883 监听。Mqttable 会测试并连接该端点,不会启动 Broker。
在新建 Broker 中填写:
Local Demo127.0.0.11883选择测试连接。

回环端点通过两个 MQTT 版本的测试后,再创建 Local Demo。
两个版本都显示连接正常后,选择创建。如果测试失败,请确认本地 Broker 正在运行,并检查其 Listener 使用的协议、主机和端口是否与当前选择一致。本教程默认使用回环端点;如果要连接公共 Broker,请改用公共 Broker 指南。
选择新建 MQTT 客户端,创建第一个客户端:
publishermqttable-publisher-session01选择连接。然后选择新建客户端,准备第二个客户端:
subscribermqttable-subscriber-session01
使用两个独立 MQTT Session 发布和接收教程消息。
选择连接。两个客户端行都显示已连接后再继续。如果早先的运行已经创建 Local Demo 或相同 Client ID,请先按第 8 步删除旧教程 Broker。
在 subscriber 行选择添加订阅,填写:
subscriberfactory/line-1/temperature
publisher 发送消息前,先让 subscriber 订阅完全相同的 Topic。
选择确认。发布前,subscriber 行必须显示 factory/line-1/temperature 和 QoS1 标记。
在 Composer 中选择 publisher,填写:
factory/line-1/temperature{ "sensor": "temp-01", "value": 23.4, "unit": "C" }
发送前,选择清空消息,确认清空 Local Demo 的 Trace。确认 Trace 显示 0 条消息,并保持两个过滤框为空,以便下一步显示 PUBACK 记录。

从未设过滤条件的空 Trace 开始,确保后续四行都属于这一次发布。
只选择一次发送。
保持两个过滤框为空。Trace 现在应包含四条相关记录。界面可能会把最新的确认显示在最前面。

相同的 Topic、Payload、方向和确认报文证明完整消息流。
同时满足以下条件才算完成:
publisher 显示 PUBLISH / 发送。subscriber 显示 PUBLISH / 接收,Topic 和 Payload 与发送值相同。publisher 显示 PUBACK / 接收。subscriber 显示 PUBACK / 发送。仅显示已连接,或仅按下了发送,都不能证明消息已送达。
选择 subscriber 的 PUBLISH / 接收 记录。Mqttable 会在 Trace 旁边打开消息详情。

选择 Trace 记录即可检查对应 MQTT 报文,同时保留完整消息流作为上下文。
详情面板应显示 mqttable-subscriber-session01、RECV、PUBLISH、factory/line-1/temperature、QoS 1 和相同的 JSON Payload。
打开 Local Demo 的 Broker 设置,选择删除。

检查结果后删除 Local Demo,下次运行就能从干净状态开始。
再次选择删除。这会删除 Local Demo、两个教程客户端、Subscription 和相关本地数据。
127.0.0.1:1883 监听,并且协议为 mqtt。Local Demo 教程 Broker。subscriber 已连接、Topic 完全相同、QoS 为 1,并且已选择确认。
Broker 先确认 publisher Session,再把消息转发给 subscriber Session,并接收该 Session 的确认;Trace 会展示四个报文方向。
Mqttable 打开了两个独立的 MQTT 5.0 Session。subscriber 声明关注一个 Topic,publisher 向该 Topic 发送 QoS 1 消息,Broker 再将消息路由给 subscriber。Trace 展示了两个 PUBLISH 方向和两个 PUBACK 方向,因此你可以验证消息已送达。