← 返回调试工具

MQTT 调试 · 使用说明

一个给你私有调试空间的在线 MQTT 工具。注册一个「工作区」,你和你的设备、队友就能在这个隔离的空间里收发消息、联调——别的工作区看不到你,你也碰不到别人。

三步上手

  1. 连接:给调试空间起个工作区名 + 密码,点「连接」。首次自动创建,以后用同样的名字密码登录。
  2. 订阅 / 发布:在「订阅」填主题盯消息;在「发布」发消息。右侧「实时日志」带时间戳显示所有收发(RECV 收 / SEND 发 / SYS 系统 / ERR 错误)。
  3. 接入你自己的客户端:把设备 / MQTTX / 代码用同一个工作区账号连进来,就能一边发一边在网页看。

提示:连接成功 ≠ 看到消息。MQTT 连上只是接通了线,你得先「订阅」某个主题,才会收到它的消息。

把你的设备 / 客户端接进来

都用同一个工作区账号(用户名 = 工作区名,密码 = 你设的密码),主题都在 <工作区>/ 下。

① 软件 / 网页 / MQTTX —— WebSocket

协议ws(备案上 HTTPS 后是 wss
地址ws://120.79.19.193/ws
端口80
用户名 / 密码你的工作区名 / 密码

MQTTX:新建连接 → Protocol 选 ws,Host 120.79.19.193,Port 80,Path /ws,填用户名密码即可。

② 硬件设备 —— 原生 TCP(端口 1884)

ESP32 / Arduino(PubSubClient):把 WS / PW 换成你的工作区名和密码。

WiFiClient net;
PubSubClient mqtt(net);
const char* WS = "myteam";        // 你的工作区名
const char* PW = "your-password"; // 你的密码

mqtt.setServer("120.79.19.193", 1884);
mqtt.connect("my-device-01", WS, PW);          // 账号认证
mqtt.subscribe("myteam/cmd");           // 收指令
mqtt.publish("myteam/status", "online");// 发状态

Python(paho-mqtt):

import paho.mqtt.client as mqtt
c = mqtt.Client()
c.username_pw_set("myteam", "your-password")
c.connect("120.79.19.193", 1884)
c.subscribe("myteam/cmd")
c.publish("myteam/status", "online")
c.loop_forever()

原生 TCP(1884)适合走 TCP 的硬件设备;网页 / 浏览器 / 想免端口的客户端走 WebSocket(80)。两者同一个工作区即可联调:设备发 → 网页实时看;网页发 → 设备收。

QoS 与 retain 是什么

QoS(服务质量)是消息的送达保证级别:

retain(保留消息):发布时勾上「保留」,broker 会把这条消息存在该主题上之后才订阅的客户端,一连上就立刻收到这条「最后状态」(比如设备的最新在线状态)。不勾的话,消息只发给当下正在订阅的人。

工作区与隔离(放心用)

🔒 建议用 https 打开本站:连接与注册会自动走 wss:// 加密。若以 http 打开则为明文链路(用户名 / 密码明文传输),请勿使用与其它账号相同的密码。

常见问题

连上了但看不到任何消息?
MQTT 连接本身不显示东西,要先「订阅」对应主题才会收到。试试订阅 你的工作区/## 是通配,收这底下所有)。
设备连不上 1884?
确认用了工作区账号(不是匿名);主题在 你的工作区/ 下;网络能到 120.79.19.193:1884
提示「工作区名已被占用」?
换一个名字;如果本来就是你的,用正确密码直接登录即可。
消息会被别人看到吗?
只有用你工作区名 + 密码的人能看到。所以密码别乱发。
网页 https 打不开明文 broker?
浏览器规定 https 页面只能连 wss://。要测明文公共 broker,用 http 打开本工具。
← 返回调试工具

帮我完善这个工具

用着哪里别扭、想要什么功能、发现了 bug —— 都欢迎告诉我。

想让我回复你?直接邮件我:linsuwei_mic@outlook.com