准备 MQTT Broker
设备智能体通过 MQTT Broker 连接真实设备、SDK 和浏览器模拟器。启动前先准备 MQTT 连接信息:
MQTT_BROKER_URL=
VITE_MQTT_WS_URL=
MQTT_USERNAME=
MQTT_PASSWORD=使用 TLS 时,MQTT 地址使用 mqtts://,WebSocket 地址使用 wss://。如果浏览器控制台和设备智能体不在同一台机器上,不要把 Broker 地址写成 localhost,请使用浏览器也能访问的域名或 IP。
Zero EMQX
如果只是想先跑通设备连接,可以使用 Zero EMQX。它会创建一个临时 MQTT Broker,自动生成 MQTTS/WSS 地址和账号密码。Zero EMQX 由 EMQX Cloud 提供,会自动过期,不适合长期运行。
有三种方式可以创建 Zero EMQX:
- 让 Agent 创建。
在设备智能体中对 Agent 说:
帮我创建一个 Zero EMQX MQTT Broker 测试实例,并把 MQTT 设置写入当前配置。- 在设置页创建。
打开 Settings > MQTT,点击 Create test broker。
通过 Agent 或设置页创建后,在 MQTT 设置页保存本页,让正在运行的网关使用新配置。
.env自动创建。
首次部署或首次启动设备智能体时,可以在工作区 .env 中开启 Zero EMQX:
ZERO_EMQX_ENABLED=true启动时会自动创建 Zero EMQX,并把 MQTT 设置写入配置。已经创建过的工作区不会重复创建。
可选:需要指定创建服务地址或标签时再设置:
ZERO_EMQX_MANAGER_URL=https://zero.emqx.io
ZERO_EMQX_TAG=device-agentEMQX
如果需要在自己的基础设施中运行 MQTT Broker,可以私有部署 EMQX。EMQX 适合生产环境、内网部署、数据留在本地或需要自主管理集群的场景。
Docker 启动:
docker run -d --name emqx \
-p 1883:1883 -p 8083:8083 -p 8084:8084 -p 8883:8883 -p 18083:18083 \
emqx/emqx-enterprise:latest快捷脚本安装:
curl -fsSL emqx.sh | bash
emqx startEMQX Dashboard 默认地址是 http://localhost:18083/。
如果没有开启客户端认证,可以先使用:
MQTT_BROKER_URL=mqtt://127.0.0.1:1883
VITE_MQTT_WS_URL=ws://127.0.0.1:8083/mqtt
MQTT_USERNAME=
MQTT_PASSWORD=如果开启了认证或 TLS,请在 EMQX Dashboard 中复制对应的用户名、密码和监听器地址。
EMQX Cloud
如果希望使用全托管 MQTT Broker,减少部署、升级和运维工作,可以使用 EMQX Cloud。它适合长期运行、团队共享和更多设备连接。
- 登录或注册 EMQX Cloud。
- 创建 Serverless、专有版或 BYOC 部署。
- 在部署 Overview 页面复制 MQTT 和 WebSocket 地址。
- 在 Access Control > Client Authentication 中创建客户端账号。
Serverless 默认使用 TLS:
MQTT_BROKER_URL=mqtts://<deployment-host>:8883
VITE_MQTT_WS_URL=wss://<deployment-host>:8084/mqtt
MQTT_USERNAME=<client-username>
MQTT_PASSWORD=<client-password>
MQTT_TLS_ENABLED=true
MQTT_TLS_REJECT_UNAUTHORIZED=trueEMQX Edge
如果设备智能体部署在现场网关、工控机或小型边缘设备上,并且需要靠近设备网络运行,可以使用 EMQX Edge。
Linux 安装:
curl -fsSL emqx.sh/edge | bash
source /etc/profile.d/emqx-edge.sh && emqx-edge startEMQX Edge Dashboard 默认地址是 http://localhost:8081/。Docker 部署请参考官方文档。
局域网配置示例:
MQTT_BROKER_URL=mqtt://edge-gateway.local:1883
VITE_MQTT_WS_URL=ws://edge-gateway.local:8083/mqtt
MQTT_USERNAME=
MQTT_PASSWORD=怎么选
| 需求 | 建议 |
|---|---|
| 先跑通 Demo | Zero EMQX |
| 私有部署、自主管理、数据留在本地 | EMQX |
| 全托管、少运维、团队共享 | EMQX Cloud |
| 现场网关、小型边缘设备、设备侧网络 | EMQX Edge |