gpt4 book ai didi

mqtt - mqtt 支持一对多和多对一吗?

转载 作者:行者123 更新时间:2023-12-04 17:46:37 32 4
gpt4 key购买 nike

最近看了一篇物联网文章
http://www.eclipse.org/community/eclipse_newsletter/2014/february/article2.php
在这里他说,通过 mqtt 协议(protocol),客户端可以以一对多和多对一的方式进行通信。在 mqtt 规范本身中提到了一对多,但我对多对一几乎没有混淆。我的理解是,许多客户都在同一主题上发布,而这些不同的发布者只有一个订阅者。那么订阅者(用户)应该如何识别消息属于哪个发布者?
另一个疑问,如果两个发布者使用相同的主题发布他们的数据而不知道对方,因为每个客户端都连接到互联网,订阅者将获得两个数据。但这不是订阅者所期望的。他只需要来自一个发布者的数据。在 mqtt 通信中是否有可能发生相同的情况?

最佳答案

以下是关于 MQTT 的一些事实,可能会帮助您理解。

  • 发布者不“拥有”主题。出版商可以选择
    向任何主题发布消息(假设它是有效的 MQTT 主题)。
  • 鉴于上述第 1 点,任意数量的发布者可以同时
    发布到同一主题。
  • 客户可以选择订阅
    特定或通配符主题以接收发布的信息
    任何出版商。
  • 客户端既可以是发布者也可以是订阅者
    (客户甚至可以收到自己发布的
    信息)。
  • MQTT 代理负责管理所有
    客户之间的关系。客户不知道(或关心)哪个
    其他客户端当前连接到代理。出版商和
    订阅者完全解耦,尽管他们可以通信
    使用 MQTT 功能(发布/订阅)。
  • 有可能一个
    发布者的消息被丢弃,因为没有订阅者
    目前对该消息感兴趣。 (例如:出版商发布到
    主题“主题1”。如果之前没有订阅者请求过
    订阅“topic1”,消息将被 MQTT 丢弃
    经纪人,因为它没有客户可以将其发送给)。
  • 单一出版商
    可以一次发布到多个客户端。 (例如:10 个客户来
    在线并请求订阅主题“topic1”。另一个客户
    上线并发布到“topic1”。所有 10 个订阅者
    “topic1”将收到消息。发布者只需将一条消息发布到 MQTT 代理,MQTT 代理负责将消息转发给所有 10 个订阅者)。

  • 希望这些信息能帮助您理解,如果我还有什么不清楚的地方,请告诉我。

    关于mqtt - mqtt 支持一对多和多对一吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32540670/

    32 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com