【问题标题】:Stop Mosquitto from sending the message to its owner(sender)阻止 Mosquitto 将消息发送给其所有者(发件人)
【发布时间】:2017-02-03 02:40:20
【问题描述】:

此刻 mosquitto 将收到的消息发送给订阅该主题的任何人,甚至是消息的发送者。是否可以阻止蚊子向其主人发送消息?

【问题讨论】:

  • 为客户订阅它正在发布的同一主题,然后不想接收它,这确实是一个奇怪的设计。你想达到什么目标?
  • 为什么发布者要收到自己的消息?接收自己的消息有什么意义?发布者订阅了该主题以接收其他发布而不是他自己的发布。
  • 因为这是订阅者所要求的,通过订阅主题,您可以获得关于该主题的所有消息。

标签: mqtt publish-subscribe mosquitto


【解决方案1】:

如果使用 MQTT v5.0,您可以在订阅时为订阅选项设置No Local 标志。此标志告诉代理不要将收到的带有客户端 ID 的应用程序消息发送给具有相同客户端 ID 的订阅者,这正是您在这里所期望的。

不幸的是,这在 MQTT v3.1.1 中不可用。

【讨论】:

    【解决方案2】:

    不,根据 MQTT 规范,这是正确的行为

    【讨论】:

    • 这没有提供问题的答案。要批评或要求作者澄清,请在他们的帖子下方留下评论。 - From Review
    • 问题是“是否有可能阻止这种情况发生”这就是答案
    • 我知道它应该是这样的。我的问题是,是否有可能改变这种行为?
    • 我的评论是针对投票以关闭此答案为非答案的人。不,这种行为无法改变
    • 刚刚找到我的问题的答案。 Mosquitto 经纪人确实有可能。无论如何感谢您的帮助
    【解决方案3】:

    不幸的是,没有简单直接的解决方案。但是,使用 Mosquitto 经纪人是可能的。我需要下载源代码并更改底层代码并再次编译。它需要适度的 C 编程知识。我需要研究经纪人背后的代码并了解它是如何工作的。有点困难和耗时,但可能。

    【讨论】:

    • 对,因此您更改了代理以违反规范。我的答案仍然有效
    • 还没有。似乎是一项艰巨的工作。我还在研究经纪人是如何运作的。是的,您可以更改源代码并更改代理的标准设置和正常行为,因为它是开源的。
    猜你喜欢
    • 2019-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-09
    • 2016-06-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多