在两个MQTT代理之间路由发布消息

在两个MQTT代理之间路由发布消息,mqtt,mosquitto,Mqtt,Mosquitto,我有一个头痛的问题,在两个代理之间路由发布消息,如下图所示 如何在没有主题订阅信息的情况下向用户B发送消息 我的意思是: 步骤1:配置代理A是代理B的桥接代理 步骤2:用户A将主题为#的消息发布到代理A。这意味着代理B将接收消息,用户A和用户C都将接收此消息 若我只想让用户C接收消息,那个么在步骤2中,我必须发布关于用户B订阅的主题的消息。例如: 用户A在代理1上发布主题/home/userB上的消息,用户B在代理2上订阅主题/home/userB 这是我的问题,在实践中,代理1代表组织1,代理

我有一个头痛的问题,在两个代理之间路由发布消息,如下图所示

如何在没有主题订阅信息的情况下向用户B发送消息

我的意思是:

步骤1:配置代理A是代理B的桥接代理

步骤2:用户A将主题为
#
的消息发布到代理A。这意味着代理B将接收消息,用户A和用户C都将接收此消息

若我只想让用户C接收消息,那个么在步骤2中,我必须发布关于用户B订阅的主题的消息。例如:

用户A在代理1上发布主题
/home/userB
上的消息,用户B在代理2上订阅主题
/home/userB

这是我的问题,在实践中,代理1代表组织1,代理2代表组织2

组织1下的用户A不能有关于用户B(组织2下)订阅的主题的信息

请帮帮我

先谢谢你。

我使用MQTT投入的物联网系统越多,我越能看到这个用例

您需要的是MQTT代理。因此,您没有在两个代理之间建立“桥梁”,而是建立了一个代理,该代理定义了可以传递给另一个代理的规则。因此,如果有人在Broker#1上发布到“/home/UserB”,并且没有将其传递到Broker#2的“规则”,那么就到此为止了

其思想是,您的代理连接到另一个代理,并等待发布到它。列表是将在另一个代理上发布的主题或主题/#的设置。我还设置了翻译以及IE>/home/UserB=>/Org1/status/event来隐藏实际的原始主题

如果跨组织的通信量不是太大,您可以在容器中执行此操作


我会发布一些代码,但我编写的所有MQTT代理都是客户IP。写代码并不难。。。也许我应该写一个公共域版本…

在互联网上搜索“mosquitto访问控制列表”或阅读mosquitto文档。我同意你关于MQTT代理的想法。但我的问题并没有完全解决。如果我这样做,“一个列表是一组主题或主题/#,将在另一个代理上发布。”,组织2中的用户B如何知道他必须订阅哪个主题才能接收消息?就像他们会发现原始主题一样——有人会告诉他们。无论谁设置了代理,都会告诉双方使用该主题来发布和订阅。这需要一个管理功能,但任何其他解决方案也需要它。也许你正在寻找类似的东西?