Skip to content

准备 MQTT Broker

设备智能体通过 MQTT Broker 连接真实设备、SDK 和浏览器模拟器。启动前先准备 MQTT 连接信息:

bash
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:

  1. 让 Agent 创建。

在设备智能体中对 Agent 说:

text
帮我创建一个 Zero EMQX MQTT Broker 测试实例,并把 MQTT 设置写入当前配置。
  1. 在设置页创建。

打开 Settings > MQTT,点击 Create test broker

通过 Agent 或设置页创建后,在 MQTT 设置页保存本页,让正在运行的网关使用新配置。

  1. .env 自动创建。

首次部署或首次启动设备智能体时,可以在工作区 .env 中开启 Zero EMQX:

bash
ZERO_EMQX_ENABLED=true

启动时会自动创建 Zero EMQX,并把 MQTT 设置写入配置。已经创建过的工作区不会重复创建。

可选:需要指定创建服务地址或标签时再设置:

bash
ZERO_EMQX_MANAGER_URL=https://zero.emqx.io
ZERO_EMQX_TAG=device-agent

EMQX

如果需要在自己的基础设施中运行 MQTT Broker,可以私有部署 EMQX。EMQX 适合生产环境、内网部署、数据留在本地或需要自主管理集群的场景。

Docker 启动:

bash
docker run -d --name emqx \
  -p 1883:1883 -p 8083:8083 -p 8084:8084 -p 8883:8883 -p 18083:18083 \
  emqx/emqx-enterprise:latest

快捷脚本安装:

bash
curl -fsSL emqx.sh | bash
emqx start

EMQX Dashboard 默认地址是 http://localhost:18083/

如果没有开启客户端认证,可以先使用:

bash
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。它适合长期运行、团队共享和更多设备连接。

  1. 登录或注册 EMQX Cloud
  2. 创建 Serverless、专有版或 BYOC 部署。
  3. 在部署 Overview 页面复制 MQTT 和 WebSocket 地址。
  4. Access Control > Client Authentication 中创建客户端账号。

Serverless 默认使用 TLS:

bash
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=true

EMQX Edge

如果设备智能体部署在现场网关、工控机或小型边缘设备上,并且需要靠近设备网络运行,可以使用 EMQX Edge。

Linux 安装:

bash
curl -fsSL emqx.sh/edge | bash
source /etc/profile.d/emqx-edge.sh && emqx-edge start

EMQX Edge Dashboard 默认地址是 http://localhost:8081/。Docker 部署请参考官方文档。

局域网配置示例:

bash
MQTT_BROKER_URL=mqtt://edge-gateway.local:1883
VITE_MQTT_WS_URL=ws://edge-gateway.local:8083/mqtt
MQTT_USERNAME=
MQTT_PASSWORD=

怎么选

需求建议
先跑通 DemoZero EMQX
私有部署、自主管理、数据留在本地EMQX
全托管、少运维、团队共享EMQX Cloud
现场网关、小型边缘设备、设备侧网络EMQX Edge

官方参考