0

我正在尝试构建一个实时 mqtt 应用程序,将数据从移动设备发送到处理该数据的后端。我怎样才能最好地在这些 mqtt 流中实现标识?我的意思是,我怎么知道哪些数据来自哪个设备/用户?我应该制作多个流还是应该在标识用户的流中放置一个变量?

4

1 回答 1

2

根据您的描述,我建议为每个移动设备使用一个主题。

  • 设备/设备1 /数据
  • 设备/设备1 /状态
  • 设备/设备2 /数据
  • 设备/设备2 /状态

当你这样做时,很容易通过订阅设备/+/数据来获取所有数据。如果您的客户只发布数据并且您对其他内容不感兴趣,您也可以直接使用 devices/+。在您的网络浏览器或代理中(请参阅我对您其他问题的回答),您会收到消息,并且您可以通过主题确定哪个客户端发送了消息。

使场景更安全的另一个步骤是只允许 device1 发布到 devices/device1/#。这可以通过 MQTT 代理中的插件来实现。此处为 HiveMQ 代理显示了一个示例,说明实现这样一个插件是多么容易。

希望这会有所帮助,克里斯

于 2013-12-25T06:37:52.970 回答