MQTT 操作-连接MQTT Broker
连接 MQTT Broker
问题背景
连接到指定的 MQTT Broker
解决方案
使用 订阅 MQTT 输入节点或 写入 MQTT 输出节点,以及一个相关的 MQTT Config 节点来连接到 MQTT Broker。
示例
该流程演示了如何连接到本地 MQTT Broker 进行消息的发布和订阅。
该流程包含以下节点:
- 注入 节点: 配置为每当触发时,发送数字 "22" 作为
msg.payload。 - 写入 MQTT 节点: 连接到配置为
172.16.0.3:1883的 MQTT Broker,并将msg.payload发布到sensors/livingroom/temp主题。 - 订阅 MQTT 节点: 连接到配置为
172.16.0.3:1883的 MQTT Broker,并订阅sensors/livingroom/temp主题。 - 日志输出 节点: 显示从
订阅 MQTT节点接收到的msg.payload内容。 - MQTT Broker Config 节点 (隐藏在 订阅 MQTT/写入 MQTT 节点配置中): 配置 MQTT Broker 的连接详情,包括服务器地址(
172.16.0.3)和端口(1883)。

示例JSON
[{"id":"2c6873d2.992abc","type":"mqtt out","z":"09f64d8a7f751be5","name":"","topic":"sensors/livingroom/temp","qos":"","retain":"","respTopic":"","contentType":"","userProps":"","correl":"","expiry":"","broker":"407a01e4.6b637","x":510,"y":160,"wires":[]},{"id":"d9beed59.94155","type":"inject","z":"09f64d8a7f751be5","name":"","repeat":"","crontab":"","once":false,"topic":"","payload":"22","payloadType":"num","x":330,"y":160,"wires":[["2c6873d2.992abc"]]},{"id":"be80048.8f232f8","type":"mqtt in","z":"09f64d8a7f751be5","name":"","topic":"sensors/livingroom/temp","qos":"2","datatype":"auto-detect","broker":"407a01e4.6b637","nl":false,"rap":false,"inputs":0,"x":350,"y":240,"wires":[["8640b8ff.f82ff8"]]},{"id":"8640b8ff.f82ff8","type":"debug","z":"09f64d8a7f751be5","active":true,"console":"false","complete":"false","x":550,"y":240,"wires":[]},{"id":"407a01e4.6b637","type":"mqtt-broker","name":"数字工厂","broker":"172.16.0.3","port":"1883","clientid":"ocs_controller_sensors_example","autoConnect":true,"usetls":false,"protocolVersion":"5","keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","birthMsg":{},"closeTopic":"","closePayload":"","closeMsg":{},"willTopic":"","willQos":"0","willPayload":"","willMsg":{},"userProps":"","sessionExpiry":"","credentials":{}}]
运行结果
- 确保 MQTT Broker 正在运行: 确保MQTT 服务已启动, 本示例使用魔方自带的 MQTT 服务,默认访问ip: 172.16.0.3, 端口: 1883。
- 部署流程: 将上述 JSON 导入 ocs-controller 并部署流程。
- 触发 注入 节点: 点击
注入节点左侧的按钮。 - 观察调试面板: 调试面板将显示
写入 MQTT节点发布的消息(22),并由订阅 MQTT节点订阅后再次显示。

通常我们会订阅魔方上运行的 MQTT Broker,一旦流程中包含 MQTT 输入或输出节点,就可以通过双击节点,然后点击“添加 MQTT Broker...”下拉菜单右侧的铅笔按钮来创建一个 MQTT Config 节点。魔方默认服务器主机设置为 172.16.0.3,并将端口保留为 1883。
要连接到非本地、安全的 Broker,则需要根据提供方的 Broker 的连接要求设置其他 MQTT Config 节点选项。比如很多数采项目,需要从第三方的云平台订阅数据,那就需要对方提供连接的ip , 端口和账号密码,以及订阅的主题