更新于 2026年9月5日

快速入门

创建私有 Broker,授权测试主题,并通过 TLS 收到第一条消息。

本指南带你在自己的 RunMQTT Broker 上完成一次消息收发。你需要 RunMQTT 账户;终端验证还需要安装支持 --tls-use-os-certs 的 Mosquitto 2.x 客户端工具。请先按操作系统安装客户端工具。

如果只想做一次临时连接测试,可以使用公共 MQTT Broker,只发送模拟数据。该端点的凭证和主题由所有人共享,状态可能随时重置。

1. 创建 Broker

进入控制台,选择创建 Broker,填写名称、选择套餐和计费周期。在结账页核对试用资格和付款条款。完成结账后返回 RunMQTT,等待 Broker 进入运行状态。如果一直停留在待处理状态,先按故障排查处理,避免重复创建订阅。

2. 授权一个测试主题

在 Broker 的模板页签创建 demo-client,进入模板并添加 Topic 策略:

字段
Topic Filterdemo/hello
权限发布和订阅(双向)
描述可选

首次测试使用这个精确主题即可。只有发布权限的设备无法接收自己的测试消息。保存策略不等于建立订阅,后面仍需要客户端主动订阅。

3. 创建设备并复制凭证

设备页签中,使用该模板创建 demo-client-1。打开设备连接详情,复制 TLS 接入地址、MQTT 用户名和密码。MQTT 密码与 RunMQTT 账户登录凭证不同,直接使用页面显示的值,不需要哈希或签名。

每个同时在线的客户端必须使用不同的 Client ID。下面两个终端分别使用 runmqtt-demo-subrunmqtt-demo-pub

4. 在浏览器中收到消息

在 Broker 的 MQTT 客户端页签选择设备并连接,订阅 demo/hello。看到订阅成功后,向 demo/hello 发布 {"message":"hello"},QoS 选择 1。确认流量记录中出现对应主题和内容的接收记录;只有发送记录还不能证明收到消息。

内置工具使用 MQTT 3.1.1,发布 QoS 为 0 或 1。MQTT 5、持久会话和高级投递测试请使用 SDK。

5. 在两个终端中通过 TLS 验证

每个终端分别设置以下变量,使用设备详情替换占位值。MQTT_HOST 只填主机名,去掉 mqtts://:8883。执行 read 后粘贴密码并回车,输入不会显示。以下命令适用于 Bash 或 Zsh。

export MQTT_HOST='<broker>.tls-broker.runmqtt.com'
export MQTT_USERNAME='<broker-id>/<device-name>'
read -r -s MQTT_PASSWORD
export MQTT_PASSWORD

终端 A 启动订阅:

mosquitto_sub -h "$MQTT_HOST" -p 8883 --tls-use-os-certs \
  -u "$MQTT_USERNAME" -P "$MQTT_PASSWORD" -i runmqtt-demo-sub \
  -V mqttv311 -k 60 -q 1 -t 'demo/hello' -v -d

等待成功的 SUBACK,再留出五秒后首次发布。在终端 B 发送:

mosquitto_pub -h "$MQTT_HOST" -p 8883 --tls-use-os-certs \
  -u "$MQTT_USERNAME" -P "$MQTT_PASSWORD" -i runmqtt-demo-pub \
  -V mqttv311 -k 60 -q 1 -t 'demo/hello' -m '{"message":"hello"}'

终端 A 应出现 demo/hello {"message":"hello"}。如果 SUBACK 拒绝订阅,或没有收到消息,检查模板并参考故障排查。不要关闭证书校验来绕过连接失败。

使用 Ctrl+C 停止订阅,并在两个终端执行 unset MQTT_PASSWORD-P 便于本地测试,但密码可能被本机进程检查工具读取;无人值守客户端应使用受保护的客户端配置或密钥管理服务。

继续接入