RunMQTT 为原生 MQTT 客户端和浏览器 WebSocket 客户端提供安全接入地址。
接入地址
| 传输方式 | 地址格式 | 典型用途 |
|---|---|---|
| MQTT over TLS | mqtts://<broker>.tls-broker.runmqtt.com:8883 | 设备、网关和后端服务 |
| MQTT over secure WebSocket | wss://<broker>.tls-broker.runmqtt.com/mqtt | 浏览器应用及只允许 WebSocket 的网络 |
应用连接应使用 TLS 或 WSS,即使连接详情还列出了 TCP 地址。复制 RunMQTT 显示的安全主机名,确保可以验证证书。原生客户端根据 API 填写主机名与端口,或完整 mqtts:// URL;浏览器客户端需要包含 /mqtt 的完整 WSS 地址。
公共测试端点
公共 MQTT Broker是托管接入契约之外的明确例外。它的连接参数会公开共享 TCP 1883、TLS 8883、测试凭证、复制操作和 Mosquitto TLS 示例。即使提供明文测试监听器,也应优先使用 TLS 完成客户端验证。
公共端点仅用于测试,不提供私有命名空间、持久状态或 SLA。不要发送密钥或任何接近生产的数据。需要稳定设备身份、Topic 策略和真实工作负载时,应使用账户下的私有托管 Broker。
MQTT 版本
托管 Broker 链路支持 MQTT 3.1.1 和 MQTT 5.0。MQTT 5 包含标准确认原因码,以及常用的 Publish Properties,例如 Content Type、User Property、Response Topic、Correlation Data 和消息过期时间。
内置浏览器 Console 目前有意保持在 MQTT 3.1.1。它用于验证凭证、地址路由和基础 Topic 权限,不是完整的 MQTT 5 协议调试器。
套餐能力对照
| 能力 | Starter | Growth | Scale |
|---|---|---|---|
| MQTT 3.1.1 客户端 | 包含 | 包含 | 包含 |
| MQTT 5 客户端 | 包含 | 包含 | 包含 |
| QoS 0 和 QoS 1 | 包含 | 包含 | 包含 |
| QoS 2 | — | 包含 | 包含 |
| 遗嘱消息 | 包含 | 包含 | 包含 |
| 保留消息 | — | 包含 | 包含 |
| TLS 和 WSS | 包含 | 包含 | 包含 |
如何选择 QoS
- QoS 0:适合可以被后续数据替代的高频遥测,协议开销最低。
- QoS 1:适合必须送达、且业务可以幂等处理的事件。
- QoS 2:适用于 Growth 和 Scale 中确实需要 MQTT 协议边界 Exactly Once 的工作负载。
QoS 不能替代业务幂等。重连、下游重试和外部系统仍可能造成业务操作重复。
保留消息与遗嘱消息
保留消息会保存某个 Topic 的最新 Payload,并在新订阅建立时立即投递,Growth 和 Scale 可用。遗嘱消息用于在客户端未正常关闭连接时通知订阅方,所有套餐均包含。
连接参数
| 参数 | 首次验证建议 |
|---|---|
| 用户名和密码 | 从设备详情复制,不需要签名 |
| Client ID | 并发客户端各不相同;恢复会话时保持固定 |
| Keep Alive | 首次测试使用 60 秒 |
| QoS / retain | 首次测试使用 QoS 1,retain 为 false |
| TLS 校验 | 保持开启,使用系统信任库和 RunMQTT 主机名 |
终端命令见快速入门,程序收发见 客户端接入示例。MQTT 5 客户端应遵守实际连接的 Broker 声明的能力与限制,不能假定所有 MQTT 5 选项都可用。
实际使用投递能力
QoS 在各段投递链路分别协商。发布 QoS 1 不会使 QoS 0 订阅获得可靠投递,PUBACK 也不代表下游业务处理成功。