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,这个问题现已解决!

  1. 设备(以 d: 开头)只能订阅 iot-2/cmd 个主题字符串。
  2. 我直接将输入节点连接到输出节点。因此,输出节点中的所有设置都被 msg. 属性覆盖。因此,我放入了一个设置 msg. 属性的函数节点。或者(如@idan 所建议),函数节点可以有一行 msg=msg.payload,这样节点中的属性就不会被覆盖。