我正在構建一個iOS應用程序來通過MQTT控制我的Raspberry Pi。我希望能夠將控制命令從我的iPhone發送到Pi,讓Pi響應狀態更新。一臺設備是否可以訂閱來自IBM IoTF上另一臺設備的MQTT事件或命令?
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
的活動,但不是物聯網基金會。
好的,謝謝你讓我的頭直上。 :-)是的,我翻轉了iPhone應用程序作爲應用程序連接,事情按我想要的方式工作 - iPhone向Pi發送命令,Pi向iPhone發送事件。謝謝! –