使用 Bluemix IoT Foundation 的 Node-RED 应用程序是否需要设备和应用程序的单独主题?

Do Node-RED applications using Bluemix IoT Foundation require separate topics for devices and applications?

对于 Node-RED 应用程序,我使用 MQTT 与设备通信。我需要使用两个 "topics" 吗?:

或者,设备和 Node-RED 应用程序是否可以post 对同一主题的不同信息(发布和订阅)?

例如:如果设备既发布温度数据又订阅同一主题以从 Bluemix 中的 Node-RED 获取信息,这会导致问题吗?我要交换两种类型的数据:

你应该使用两个不同的主题。
连接到 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