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

时间:2015-09-21 18:23:06

标签: ibm-cloud mqtt iot node-red

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

  • 设备发布Node-Red应用程序订阅信息的一个主题。
  • 要发布的Node-RED应用程序(以及要订阅的设备)的一个主题。

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

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

  • 设备将发布温度。
  • Node-RED应用程序将发布“用户请求”信息,告知设备何时报告温度。

1 个答案:

答案 0 :(得分:2)

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