MQTT消息订阅“除我以外的所有人”

时间:2020-01-02 15:02:33

标签: mqtt

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

除了来自我的实例的邮件之外,我基本上想订阅每封邮件

我考虑过进行应用程序侧检查,并在消息中添加了“ SenderId”属性。 但这在带宽消耗和计算时间上都有相当大的开销,因为如果我是发件人,则必须检查每条消息

我正在使用基本主题family/message布局,没什么复杂

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

但是好像我在某个地方错了,因为我想全部订阅

这是一个小例子。为了减少内部实例处理与服务总线处理之间的代码重复,“ EventPipeline”是必需的 small example 如果有人有很好的提示,

多谢。

1 个答案:

答案 0 :(得分:1)

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

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

然后使用ACL允许每个用户向其子主题发布(写入),但不能从其订阅(读取)。这将使代理为您过滤邮件。