一台设备是否可以在IBM IoTF上订阅来自另一台设备的MQTT事件或命令?

时间:2015-12-09 17:48:47

标签: ibm-cloud mqtt iot node-red

我正在构建一个iOS应用程序来控制我的Raspberry Pi而不是MQTT。我希望能够将控制命令从我的iPhone发送到Pi并让Pi响应状态更新。

Pi正在运行Node-RED,并且可以向IBM IoT Foundation发送和接收事件和命令(从Bluemix Node-RED应用程序验证)。

iPhone Swift应用程序正在使用https://cocoapods.org/pods/MQTTClient(注意 - 并未专门将IBM IoT列为经过测试的平台)。

在Swift应用程序中,我已成功连接到IBM IoTF并发送了Pi收到的事件。我还成功订阅了"iot-2/cmd/streamStarted/fmt/json"形式的命令主题,但从未收到消息。如果我尝试以"iot-2/cmd/startStream/fmt/json"形式发布命令或订阅"iot-2/evt/streamStarted/fmt/json""iot-2/type/myPi/id/<myPiID>/evt/streamStarted/fmt/json"形式的事件,则会立即关闭连接。

最重要的是,我需要以某种方式从Pi到iPhone获取状态消息。如果它是一个事件,一个命令或其他什么,我真的不在乎。我用test.mosquitto.org事件成功完成了这项工作,而不是IoT Foundation。

1 个答案:

答案 0 :(得分:2)

只有应用程序才能向设备发送命令。您无法将命令从一个设备发送到另一个设备。 iphone swift应用程序是作为应用程序连接到IoT Foundation还是尝试连接为设备?