使用 Bluemix IoT Foundation 的 Node-RED 应用程序是否需要设备和应用程序的单独主题?
Do Node-RED applications using Bluemix IoT Foundation require separate topics for devices and applications?
对于 Node-RED 应用程序,我使用 MQTT 与设备通信。我需要使用两个 "topics" 吗?:
- 一个topic供设备发布信息给Node-Red应用订阅
- Node-RED 应用程序要发布的一个主题(以及要订阅的设备)。
或者,设备和 Node-RED 应用程序是否可以post 对同一主题的不同信息(发布和订阅)?
例如:如果设备既发布温度数据又订阅同一主题以从 Bluemix 中的 Node-RED 获取信息,这会导致问题吗?我要交换两种类型的数据:
- 设备将发布温度。
- Node-RED 应用程序将发布 "user request" 信息,告诉设备何时报告温度。
你应该使用两个不同的主题。
连接到 IoT Foundation 服务的应用程序(例如 Node-RED)向设备发布命令并订阅设备事件。
设备将订阅命令主题,应用程序 (Node-RED) 将订阅事件主题。
您的设备将发布事件——例如温度。因此,设备应该将该事件发布到格式为 iot-2/evt/event_id/fmt/format_string 的主题,而您的 Node-RED 应用程序将发布命令到不同的主题。
例如...
您可以这样发布温度:
iot-2/evt/temperature/fmt/json { d: { temp: 25 } }
并像这样向设备发布命令:iot-2/cmd/sendTemperature/fmt/json
设备将订阅命令主题,应用程序 (Node-RED) 将订阅事件主题。具体来说,当您发布事件时,您发布到主题 iot-2/evt/event_id/fmt/format_string 并且设备通过订阅主题 iot-2/cmd/command_id/fmt/format_string
来订阅命令
在线查看 MQTT 和 IoT documentation。
对于 Node-RED 应用程序,我使用 MQTT 与设备通信。我需要使用两个 "topics" 吗?:
- 一个topic供设备发布信息给Node-Red应用订阅
- Node-RED 应用程序要发布的一个主题(以及要订阅的设备)。
或者,设备和 Node-RED 应用程序是否可以post 对同一主题的不同信息(发布和订阅)?
例如:如果设备既发布温度数据又订阅同一主题以从 Bluemix 中的 Node-RED 获取信息,这会导致问题吗?我要交换两种类型的数据:
- 设备将发布温度。
- Node-RED 应用程序将发布 "user request" 信息,告诉设备何时报告温度。
你应该使用两个不同的主题。
连接到 IoT Foundation 服务的应用程序(例如 Node-RED)向设备发布命令并订阅设备事件。
设备将订阅命令主题,应用程序 (Node-RED) 将订阅事件主题。
您的设备将发布事件——例如温度。因此,设备应该将该事件发布到格式为 iot-2/evt/event_id/fmt/format_string 的主题,而您的 Node-RED 应用程序将发布命令到不同的主题。
例如... 您可以这样发布温度:
iot-2/evt/temperature/fmt/json { d: { temp: 25 } }
并像这样向设备发布命令:iot-2/cmd/sendTemperature/fmt/json
设备将订阅命令主题,应用程序 (Node-RED) 将订阅事件主题。具体来说,当您发布事件时,您发布到主题 iot-2/evt/event_id/fmt/format_string 并且设备通过订阅主题 iot-2/cmd/command_id/fmt/format_string
来订阅命令在线查看 MQTT 和 IoT documentation。