Node-RED: 通过 WebSockets 连接到 MQTT

本文档属于MQTT 服务器指南的一部分。您可以在此处查看完整指南:如何将 Node-RED 连接到 Mosquitto MQTT 服务器

欢迎查阅 Stackhero 文档

Stackhero 提供全托管的 Node-RED cloud 环境,助您快速构建工作流:

  • 内置 MQTT 服务器(Mosquitto),实现无缝 IoT 集成。
  • 完全访问 Node-RED 管理界面,便于管理流程和设置。
  • 包含 Node-RED Dashboard,支持实时可视化。
  • 提供 专用 SMTP 邮件服务器,发送邮件无数量限制。
  • 轻松实现 一键更新,让您的实例始终保持最新。
  • 支持 自定义域名,自动配置 HTTPS,例如 https://node-red.your-company.com
  • 性能 与强大 安全性,基于专属私有基础设施。

您只需约 5 分钟,即可拥有安全、可用于生产环境的 Node-RED cloud hosting 实例。Stackhero 负责部署、更新和基础设施运维,让您专注于自动化流程的开发。

您可以选择通过 MQTT 协议或 WebSockets 连接到 Mosquitto MQTT 服务器。

虽然 MQTT 协议非常轻量,适合物联网设备,但它并不被 Web 浏览器原生支持。如果您希望通过浏览器与 MQTT 服务器交互,建议使用 WebSockets。此方法可将 MQTT 流量封装在 WebSocket 协议中,并且与 Stackhero 的服务完美兼容。

要启用 WebSocket 连接,只需在 Stackhero 控制台中激活“WebSocket Support”选项。启用后,您可以将客户端配置为使用 WebSocket URL:wss://<XXXXXX>.stackhero-network.com:443/mqtt。请确保将默认的 mqtts://<XXXXXX>.stackhero-network.com 替换为此 WebSocket URL,以便通过浏览器进行连接。

在开发过程中,推荐使用 "MQTT.js" 库。这是一个功能强大的 JavaScript 库,兼容 Node.js 和浏览器环境。您可以在其官方仓库了解更多信息。

如果您需要一个实际示例,了解如何通过浏览器使用 WebSockets 连接到 MQTT 服务器,可以参考此仓库:https://github.com/stackhero-io/mqttWebSocketGettingStarted。您可以根据自己的环境,修改 src/index.html 文件中的 urlusernamepassword

MQTT WebSocket 示例MQTT WebSocket 示例

在尝试此配置前,请确保已在 Stackhero 控制台中启用 WebSocket 支持。这样可以确保浏览器端连接顺利运行。