moon-mqtt · 浏览器 Demo 入口
纯 MoonBit 实现的 MQTT 3.1.1 客户端(protocol / session / core + 浏览器胶水层),
编译成 JS 后在浏览器里通过 WebSocket 连接公共 EMQX broker。下面两个页面直接引用已构建好的 .js 产物,不需要本地构建。
连接 broker.emqx.io:8084,订阅 sensors/#,收到 SUBACK 后自动发一条 QoS1。带实时状态行、消息列表和完整控制台日志。
看 PUBLISH → PUBREC → PUBREL → PUBCOMP 四步握手,以及断线后 1 秒自动重连、重连后重新 CONNECT + 重新订阅的完整字节流。
在仓库根目录起一个静态服务器,然后打开对应地址(不要直接双击 html:file:// 下不同浏览器对 WebSocket 的策略不一致)。
cd moon-mqtt python -m http.server 8765 # 浏览器打开 http://127.0.0.1:8765/docs/demo/ # spike 页:http://127.0.0.1:8765/docs/demo/ws-spike.html
线上 demo(GitHub Pages,站点根为仓库根):https://duckweed-yhb.github.io/moon-mqtt/docs/demo/。本地开发时用上面的本地服务器地址。
改了 MoonBit 源码后,在仓库根目录跑:
pwsh -File scripts/build-demo.ps1
脚本会依次构建 examples/browser-demo 与 examples/ws-spike,并把 JS 产物复制到 docs/demo/。