MQTT 如何处理发布者同时发布到同一主题的问题?

How does MQTT handle publishers simultaneously publishing to the same topic at the same time?

假设我有 3 个发布商,A、B 和 C。

SOME/TOPIC 的订阅者会收到什么消息?

我想知道这一点的动机是发布者 A、B 和 C 从不可靠的数据源中提取这些消息,他们可能会错过一些消息,所以我有多个发布者发布到同一个主题形式的冗余。这是好主意还是坏主意?

订阅者会看到来自 A 和 B 的所有消息,它们传递给订阅者的顺序取决于它们到达代理的顺序(这将归结为它们通常通过网络到达的顺序) 以及在某种程度上如何实现代理。

MQTT 代理规范没有提及如何处理多个相同的消息,因此会将它们视为任何其他消息,除非您选择创建自定义代理来执行不同的操作。

我们无法回答这是否是个好主意,因为我们不知道订阅者收到多个相同消息(例如多个 FOO 和 SOMETHING 消息)的后果,因为消息在传递时将不包含有关哪个客户端发布它的任何信息(除非您选择在有效负载中对​​其进行编码)。