mqtt - MQTT 消息订阅“除我之外的所有人”
问题描述
我正在为个人项目编写基于 MQTT 协议的 ServiceBus。
我基本上想订阅每条消息,除了来自我的实例的消息。
我想过做一个应用程序端检查,在我的消息中添加一个“SenderId”属性。但它在带宽消耗和计算时间方面有相当大的开销,因为如果我是发件人,我必须检查每条消息
我正在使用基本的主题family/message
布局并不复杂
我考虑过使用某种主题布局,例如:family/message/{senderIdHere}
但看起来我在某个地方错了,因为我想订阅所有
这是一个小例子。“EventPipeline”在某种程度上是必要的,以减少内部实例处理和服务总线处理之间的代码重复 如果有人有一些很好的提示,
提前谢谢。
解决方案
MQTT 不是这样工作的,如果您订阅一个主题,您通常会将所有内容发布到该主题。
我能想到的一种可能的选择是将所有内容发布到它自己的子主题,例如family/message/{senderIdHere}
并订阅通配符family/message/#
然后使用 ACL 允许每个用户发布(写入)他们的子主题,但不能订阅(读取)它。这将使代理为您过滤消息。
推荐阅读
- powershell - 用于在 sftp 服务器和 Sharepoint 之间中继数据的 Powershell 脚本
- python-3.5 - Python:如何在函数内部显式传递函数
- javascript - 为什么 AdmZip 无法压缩大小为 525688 字节的文件夹的投掷范围错误?
- c++ - 具有复杂类型定义的问题c ++
- c++ - C ++ Win32为按钮显示具有透明背景的位图
- r - 将几个 NetCDF 组合成一个文件,每个维度都有平均值
- php - 如何用php剪切图片(不裁剪)
- javascript - 纱线 2:零安装和正常安装的区别?
- laravel - 将记录添加到数据透视表
- sql-server - 从 CTE 设置多个变量