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

例如: )

但是,如果此项目是一个较大应用程序的用例,则假设需要在某处安装大约5000台设备。

因此,创建5000个设备将需要客户端和服务器有不同的主题?还是只需要较少的主题就可以做到?如何实现?

评论

为什么您认为有很多主题是一个问题?

可能是因为该软件必须全部管理它们。

@hardillb没问题...只是好奇...但是MQTT主题可以有子主题吗?

当然,主题是分层的,因此可以设计任何方案。 Sparkplugs3.amazonaws.com/cirrus-link-com/…每个边缘节点和边缘节点后面的设备都有几个主题。

看看这个shiftr.io/shiftr-io/demo

#1 楼

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

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

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