对于Node-RED应用程序,我使用MQTT与设备通信。我需要使用两个“主题”吗?:
或者,设备和Node-RED应用程序可以将不同的信息(发布和订阅)发布到同一主题吗?
例如:如果设备既发布温度数据又订阅相同的主题以从Bluemix中的Node-RED获取信息,那会导致问题吗?我想要交换两种类型的数据:
答案 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。