首页 > 解决方案 > MQTT 消息订阅“除我之外的所有人”

问题描述

我正在为个人项目编写基于 MQTT 协议的 ServiceBus。

我基本上想订阅每条消息,除了来自我的实例的消息。

我想过做一个应用程序端检查,在我的消息中添加一个“SenderId”属性。但它在带宽消耗和计算时间方面有相当大的开销,因为如果我是发件人,我必须检查每条消息

我正在使用基本的主题family/message布局并不复杂

我考虑过使用某种主题布局,例如:family/message/{senderIdHere}

但看起来我在某个地方错了,因为我想订阅所有

这是一个小例子。“EventPipeline”在某种程度上是必要的,以减少内部实例处理和服务总线处理之间的代码重复 小例子 如果有人有一些很好的提示,

提前谢谢。

标签: mqtt

解决方案


MQTT 不是这样工作的,如果您订阅一个主题,您通常会将所有内容发布到该主题。

我能想到的一种可能的选择是将所有内容发布到它自己的子主题,例如family/message/{senderIdHere}并订阅通配符family/message/#

然后使用 ACL 允许每个用户发布(写入)他们的子主题,但不能订阅(读取)它。这将使代理为您过滤消息。


推荐阅读