moon-mqtt · 浏览器 MQTT 客户端 Demo

MoonBit 实现的 MQTT 3.1.1 客户端,编译为 JS,在浏览器里经 WebSocket(子协议 mqtt)连公共 EMQX broker。

← 返回目录
脚本加载中 … 重连 0/3 broker.emqx.io:8084 sensors/# · QoS1

这个页面在做什么

点「强制断开(测试重连)」可以随时手动制造断线,看状态行从「已连接」→「重连中」→「已连接」的完整过程。公共 broker 偶尔限流或超时,刷新页面即可重试。

收到 0 条消息

消息列表 0

  • 还没有收到 PUBLISH。连接成功后会自动发布一条 sensors/hello,随后经订阅回传到这里。

控制台日志 console.log / warn / error

怎么判断跑通了(验收要点)
  1. 日志里依次出现:[demo] client_id=… → [browser] connecting to … → [demo] connected, subscribing sensors/# QoS1 → [demo] suback, publishing QoS1 sensors/hello。
  2. 消息列表出现 sensors/hello,payload hi,2 字节(这是 broker 回投给自己订阅的那条)。
  3. 点「强制断开」后,日志出现 [browser] reconnect attempt #1 in 1s,状态行变「重连中」,约 1 秒后重新 CONNECT 并再次订阅。
  4. 全程不依赖任何本地构建目录:页面只加载同目录的 ./browser-demo.js,所以 GitHub Pages 直接打开也能跑。