MQTT 与 XMPP 我应该选择哪一个?[已关闭]

2022-09-01 00:54:46

概述

我在客户端(Android手机)和服务器(Windows Server)之间来回发送消息。通过 TCP 使用持久连接,哪种协议将是最佳解决方案。我正在查看性能、可伸缩性、消息大小和电池寿命。消息必须按顺序到达目的地,并且不能重复。

断续器

这似乎是更好的解决方案,但似乎有一些小例子可以大量用户进行大型实现。我不确定我是否可以将其集成到Windows服务器中,或者它是否必须是另一个应用程序或服务器运行。最后,似乎总体上缺乏这方面的信息。

断续器

这似乎有很多实现,例子,甚至一本书:)。然而,主要目的似乎是即时通讯客户端和像Google talk这样的东西。这是否是服务器和客户端之间消息传递的最佳解决方案。我知道目前XMPP主要用于客户端到服务器到客户端的体系结构。

如果我错了,请纠正我,并提前感谢任何指导。


答案 1

这取决于您尝试执行的操作以及正在运行的硬件。

MQTT 具有非常低的保持活动状态流量。XMPP 是一种 IM 协议,在处理所有客户端之间的状态消息时具有更高的开销。

如果内存占用限制较小,则必须处理 XML 解析器可能会使 XMPP 的使用变得不可能。

请记住,MQTT代表消息队列遥测传输,即它是一种传输协议,根本不定义消息格式 - 您必须提供此格式;XMPP 是一种即时消息协议,它仔细定义了所有消息格式,并要求所有消息都采用 XML 格式。

除此之外:MQTT 是一个发布订阅协议,XMPP 是一个即时消息协议,可以扩展(使用 XEP-0060)以支持发布订阅。在构建系统时,您需要考虑这一点。

我们发现 MQTT 是一个安静的成功者。您的里程可能会有所不同。

这完全取决于...

跟踪LinkedIn最近发布的公告,讨论他们在移动应用程序中使用MQTT。

干杯马克

(顺便说一句,安迪在提到我们时略有偏离。我们在昆士兰大学教育创新与技术中心(CEIT),布里斯班,澳大利亚)


答案 2

简而言之,我认为MQTT相对于XMPP的优势在于:

  • 吞吐能力:开销更小,更轻量级
  • 二进制与纯文本
  • QoS 到位(即发即弃、至少一次和恰好一次)
  • 发布/订阅到位(XMPP 需要扩展 XEP- 0060)
  • 无需 XML 解析器

推荐