IBM IoT到Websockets端点的输出节点

时间:2018-07-19 17:23:47

标签: node.js websocket mqtt node-red watson-iot

在Node-RED流程中,我已将IBM IoT输入节点连接到IBM IoT输出节点。我在命令行上使用mosquitto_pub发布到WIoTP,以便启动Node-RED流。同样,我正在使用mqtt sub(来自mqttjs)来订阅来自Node-RED流的消息。但是,我在订阅终端窗口上没有收到有效载荷。

发布

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密钥并且正在使用它们。我想念什么?

2 个答案:

答案 0 :(得分:0)

订阅主题似乎不正确。如果您的设备在

中发布

iot-2 / evt / data / fmt / json

那么您应该订阅

iot-2 / type / mobile / id / default_mobile / evt / data / fmt / json

注意:注意数据,而不是实时

答案 1 :(得分:0)

感谢@idan,现在已解决此问题!

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