mqtt支持一对多和多对一吗?
最近我读了一篇物联网的文章 在这篇文章中,他说,通过mqtt协议,客户机可以以一对多和多对一的方式进行通信。在mqtt规范本身中提到了一对多,但我对多对一没有什么混淆。我所了解的是,许多客户端都在发布同一主题,而这些不同的发布者只有一个订阅者。那么订阅者(用户)应该如何识别消息属于哪个发布者?mqtt支持一对多和多对一吗?,mqtt,Mqtt,最近我读了一篇物联网的文章 在这篇文章中,他说,通过mqtt协议,客户机可以以一对多和多对一的方式进行通信。在mqtt规范本身中提到了一对多,但我对多对一没有什么混淆。我所了解的是,许多客户端都在发布同一主题,而这些不同的发布者只有一个订阅者。那么订阅者(用户)应该如何识别消息属于哪个发布者? 另一个疑问是,如果两个发布者使用相同的主题发布他们的数据,而彼此都不知道,因为每个客户端都连接到internet,订阅者将同时获得这两个数据。但这并不是订阅者所期望的。他只想从一个发布者那里获得数据。在m
另一个疑问是,如果两个发布者使用相同的主题发布他们的数据,而彼此都不知道,因为每个客户端都连接到internet,订阅者将同时获得这两个数据。但这并不是订阅者所期望的。他只想从一个发布者那里获得数据。在mqtt通信中是否有可能出现相同的情况?以下是有关mqtt的一些事实,可能会帮助您理解
即使设置了retain flag发布也适用吗?因为我知道,如果设置了retain flag,则代理将存储该特定主题的会话,并且每当订阅者可以访问该主题时,代理都会将这些消息移交给订阅的客户端。“鉴于上述第1点,任何数量的发布者都可以同时发布到同一主题。“这意味着什么?”因此,如果两个客户端发布到同一主题,例如:“topic1”(假设这两个客户端不使用主题层次结构,而只使用“topic1”)。另一个客户端正在订阅“topic1”,则他将同时收到这两个值。但他如何区分两个出版商客户的值呢?另外,如果订阅服务器客户端只对一个发布服务器客户端感兴趣,那么他如何阻止其他发布服务器的值呢?我建议阅读发布/订阅模式:。为了明确回答您的问题,由于您拥有自己的主题体系结构,您可以轻松地设计系统,让发布者发布自己的主题。请记住,发布/订阅模式努力保持发布者和订阅者之间的松散耦合。如果您的订阅者需要知道哪个发布者正在发送特定的消息,您可能没有正确地设计您的系统。我可能能够澄清——考虑定义光状态的照明控制消息,例如色调灯泡。您可以让topics/house/hue//state包含各种buibs的状态信息,如果消息包含发布者id,那么如果是照明控制器,则它是关于,其他任何东西都代表了一个可能的请求——灯光控件和客户端都发布和订阅同一组URL,并使用发布者信息进一步过滤部分正确的数据。MQTT代理将只保留在给定主题上发布的最后一条消息(如果QoS值为0,则允许随时丢弃该消息)。为了给你一个有用的例子,让我们来看看股票市场的应用。每当有新的数据可用时,出版商就会发布市场数据(主题:谷歌,有效载荷:650.50美元)。设置了retain标志后,订阅者将收到可用的最新数据,而不必等到发布者发布消息才知道谷歌股票的价格。