公共 MQTT 沙箱

用于客户端测试的免费公共 MQTT Broker

无需配置基础设施即可验证客户端、学习发布/订阅或重现协议问题。共享端点无 SLA,绝不能携带密钥或生产遥测数据。

连接配置

连接到共享端点

使用唯一的 Client ID,并将共享用户名和密码保存在环境变量中,这样轮换就不会要求修改代码。

公共 Broker 连接参数
主机public.runmqtt.com
TCP1883
TLS8883
用户名ajbkvbp/demo
密码OCDWjjOSlSexcWRG
Client IDrunmqtt-test-<unique-id>

共享访问详情会轮换。在运行示例前,请将当前的用户名和密码复制到 MQTT_USERNAME 和 MQTT_PASSWORD 环境变量中。

通过 TLS 的 Mosquitto CLI
# Load the current credentials shown on this page
export MQTT_USERNAME="ajbkvbp/demo"
export MQTT_PASSWORD="OCDWjjOSlSexcWRG"

# Subscribe
mosquitto_sub \
  -h public.runmqtt.com -p 8883 \
  -u "$MQTT_USERNAME" -P "$MQTT_PASSWORD" \
  -i "runmqtt-sub-$(date +%s)" \
  -t "sandbox/$USER/telemetry" -q 1

# Publish from another terminal
mosquitto_pub \
  -h public.runmqtt.com -p 8883 \
  -u "$MQTT_USERNAME" -P "$MQTT_PASSWORD" \
  -i "runmqtt-pub-$(date +%s)" \
  -t "sandbox/$USER/telemetry" -q 1 \
  -m '{"temperature":22.4,"unit":"C"}'
沙箱规则

围绕共享 Broker 限制设计测试

公共 Broker 的价值恰恰在于其可丢弃性。请将每个会话、保留消息和凭据视为临时性的。

共享容量

其他测试人员共享连接和吞吐量。在流量高峰期,请预期节流或重置。

瞬时状态

不要依赖保留消息、持久会话或长期订阅在清理后仍然存在。

轮换访问

共享访问可能会无预警更改。请将连接详情保存在源代码之外。

无敏感数据

主题名称和载荷可能对其他用户可见。仅发布合成数据。
何时升级

使用沙箱学习;使用托管云 Broker 运营

Broker 功能对比
Broker 功能对比公共沙箱托管 Broker
身份验证共享、轮换凭据限定范围的设备凭据
主题访问用于临时测试的共享命名空间可重用的发布/订阅策略
运维尽力而为,无生命周期保证专属运行环境、健康状态与计费信息
数据仅合成负载私有应用工作负载
当客户端需要稳定的端点和凭据时迁移。
在使用客户、设备或操作数据之前迁移。
当设备需要不同的发布/订阅权限时迁移。
当演示成为可重复的集成或服务时迁移。

公共 MQTT Broker 常见问题解答

我能通过公共 Broker 发送生产流量吗?

不能。该端点是共享的,仅供尽力而为,可能会重置会话或轮换访问凭据。仅用于客户端验证、研讨会和短期演示。

我应该使用 1883 端口还是 8883 端口?

推荐使用 8883 端口并进行证书验证。1883 端口仅适用于隔离故障排除,因为载荷和凭据在传输过程中未加密。

为什么共享凭据会改变?

凭据轮换限制滥用并清除过时的研讨会访问权限。请将凭据保存在环境变量中,并在计划测试前查看此页面。

为什么我的客户端一连接另一个客户端就会断开?

MQTT Broker 对每个 Client ID 只允许一个活动会话。为每个浏览器标签页、进程、设备和研讨会参与者生成唯一的 Client ID。