IBM IoT 输出节点到 websockets 端点
IBM IoT output node to websockets end-point
在我的 Node-RED 流程中,我将一个 IBM IoT 输入节点连接到一个 IBM IoT 输出节点。我在命令行上使用 mosquitto_pub
发布到 WIoTP,以便启动 Node-RED 流程。同样,我使用 mqtt sub
(来自 mqttjs)订阅来自 Node-RED 流的消息。但是,我的订阅终端 window.
没有收到负载
发布
mosquitto_pub -h orgId.messaging.internetofthings.ibmcloud.com -p 8883 -i d:orgId:dType:default -u use-token-auth -P 'authToken' --cafile messaging.pem -t iot-2/evt/data/fmt/json -f payload.json
订阅
mqtt sub -h orgId.messaging.internetofthings.ibmcloud.com -p 443 -l wss -i a:orgId:default_mobile -u API-key -P 'API-token' --ca messaging.pem -t iot-2/type/mobile/id/default_mobile/evt/live/fmt/json
对于订阅,我创建了 API 个密钥并正在使用。我错过了什么?
订阅主题似乎有误。如果您的设备在
中发布
iot-2/evt/data/fmt/json
那你应该订阅
iot-2/type/mobile/id/default_mobile/evt/data/fmt/json
注意:记住data而不是live
感谢@idan,这个问题现已解决!
- 设备(以
d:
开头)只能订阅 iot-2/cmd
个主题字符串。
- 我直接将输入节点连接到输出节点。因此,输出节点中的所有设置都被
msg.
属性覆盖。因此,我放入了一个设置 msg.
属性的函数节点。或者(如@idan 所建议),函数节点可以有一行 msg=msg.payload
,这样节点中的属性就不会被覆盖。
在我的 Node-RED 流程中,我将一个 IBM IoT 输入节点连接到一个 IBM IoT 输出节点。我在命令行上使用 mosquitto_pub
发布到 WIoTP,以便启动 Node-RED 流程。同样,我使用 mqtt sub
(来自 mqttjs)订阅来自 Node-RED 流的消息。但是,我的订阅终端 window.
发布
mosquitto_pub -h orgId.messaging.internetofthings.ibmcloud.com -p 8883 -i d:orgId:dType:default -u use-token-auth -P 'authToken' --cafile messaging.pem -t iot-2/evt/data/fmt/json -f payload.json
订阅
mqtt sub -h orgId.messaging.internetofthings.ibmcloud.com -p 443 -l wss -i a:orgId:default_mobile -u API-key -P 'API-token' --ca messaging.pem -t iot-2/type/mobile/id/default_mobile/evt/live/fmt/json
对于订阅,我创建了 API 个密钥并正在使用。我错过了什么?
订阅主题似乎有误。如果您的设备在
中发布iot-2/evt/data/fmt/json
那你应该订阅
iot-2/type/mobile/id/default_mobile/evt/data/fmt/json
注意:记住data而不是live
感谢@idan,这个问题现已解决!
- 设备(以
d:
开头)只能订阅iot-2/cmd
个主题字符串。 - 我直接将输入节点连接到输出节点。因此,输出节点中的所有设置都被
msg.
属性覆盖。因此,我放入了一个设置msg.
属性的函数节点。或者(如@idan 所建议),函数节点可以有一行msg=msg.payload
,这样节点中的属性就不会被覆盖。