Node-RED: MQTT 服务器
如何将 Node-RED 连接到 Mosquitto MQTT 服务器
👋 欢迎使用 Stackhero 文档!
Stackhero 提供即用型 Node-RED 云 解决方案,具有众多优势,包括:
- 包含 MQTT 服务器(Mosquitto)。
- 完全访问 Node-RED 管理界面。
- 包含 Node-RED 仪表板。
- 包含无限和专用的 SMTP 电子邮件服务器。
- 只需点击即可轻松更新。
- 使用 HTTPS 保护的可定制域名(例如,https://node-red.your-company.com)。
- 由私有和专用 VM提供的最佳性能和强大安全性。
节省时间并简化生活:只需 5 分钟即可试用 Stackhero 的 Node-RED 云托管 解决方案!
Stackhero 的 Node-RED 服务内置了 MQTT 服务器,使您能够通过安全可靠的通信通道轻松集成物联网设备。
要开始使用,只需进入 Stackhero 控制台,找到您的 Node-RED 服务,并在服务配置设置中启用“MQTT Server”选项。
服务器启用后,您可以通过 8883 端口进行连接。所有连接均通过 TLS 加密,确保您的数据安全。
简单示例:在 Node-RED 中使用 MQTT 服务器
如果您是首次在 Node-RED 中使用 MQTT,以下是一个简单示例,帮助您快速上手。该示例演示了如何向主题发送消息并接收消息。您可以下载流程示例,并通过“Import”菜单将其导入到您的 Node-RED 实例中。
MQTT 连接 Node-RED 的简单示例
如果您的 MQTT 节点一直处于“connecting”状态,建议检查
MQTT authentication流程是否仍然存在。如果缺失,您可以在此处下载:mqttAuthenticationFlow.json。将该流程导入您的 Node-RED 实例,使用您自定义的密码更新Users节点,并根据需要删除不必要的注释。
在 Node-RED 中进行 MQTT 用户认证
通过 Node-RED 中的专用流程,管理 MQTT 用户认证变得非常简单。您可以直接在 Node-RED 管理面板中找到“MQTT Authentication”流程。
MQTT 认证流程
在该认证流程中,找到 Users 模板节点。此节点包含一个数组,您可以在其中为每个用户定义凭据。您可以根据项目需求添加任意数量的用户。
注意:
node-red用户对于 Node-RED 连接到 MQTT 服务器至关重要。请确保不要从配置中删除该用户。
MQTT 用户节点
通过 WebSockets 连接到 MQTT
您可以选择通过 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 库
在开发过程中,推荐使用 "MQTT.js" 库。这是一个功能强大的 JavaScript 库,兼容 Node.js 和浏览器环境。您可以在其官方仓库了解更多信息。
浏览器通过 WebSockets 连接 MQTT 的示例
如果您需要一个实际示例,了解如何通过浏览器使用 WebSockets 连接到 MQTT 服务器,可以参考此仓库:https://github.com/stackhero-io/mqttWebSocketGettingStarted。您可以根据自己的环境,修改 src/index.html 文件中的 url、username 和 password。
MQTT WebSocket 示例
在尝试此配置前,请确保已在 Stackhero 控制台中启用 WebSocket 支持。这样可以确保浏览器端连接顺利运行。