是否有必要为x数量的设备创建ax数量的MQTT主题?


9

当前在我的项目中,控制器(客户端)将传感器数据发送到服务器,并从服务器接收反馈以及一些其他数据,并使用MQTT协议进行通信。它有2个分别针对客户端和服务器的主题。

例如:

主题1- 客户端(订阅),服务器(发布)
主题2-客户端(订阅),服务器(订阅)

但是,如果该项目是大型应用程序的用例,那么假设需要在某处安装大约5000台设备。

因此,是否需要为客户端和服务器创建5000个不同的主题?还是主题较少,可以做到的,以及如何做到的?


1
您为什么认为拥有很多主题是一个问题?
hardillb 18/09/27

1
可能是因为该软件必须管理它们全部。
Mawg说恢复Monica 18'Sep 27'18

1
@hardillb这不是问题……只是感到好奇……但是MQTT主题可以有一个子主题吗?
ron123456 '18

2
当然,主题是分层的,因此可以设计任何方案。火花塞s3.amazonaws.com/cirrus-link-com/...有几个每边缘节点和设备落后的主题边缘节点。
Gambit Support

Answers:


5

从客户端到服务器,您可以将客户端ID打包到有效负载中,例如,如果它是JSON,则其中一个键可以具有客户端ID值。

从服务器到客户端的响应应包含客户端ID,以便代理不要广播消息,而是直接将其发送给一个连接的客户端。

同时,您可以为服务器订阅以下内容:“ requests / +”,每个客户端将发布到“ request / {client-id-1}”,“ request / {client-id-2}”和服务器只需订阅一次即可收到这两个信息。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.