c# - MQTT 与 XMPP 我应该选择哪个?

标签 c# java android xmpp mqtt

概述

我在客户端(Android 手机)和服务器(Windows 服务器)之间来回发送消息。使用 TCP 上的持久连接,哪种协议(protocol)是最好的解决方案。我正在关注性能、可扩展性、消息大小和电池生命周期。消息必须按顺序到达目的地,不能重复。

MQTT

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

XMPP

这似乎有很多实现、示例,甚至一本书:)。然而,主要目的似乎是用于即时通讯客户端和谷歌谈话之类的东西。这将是服务器和客户端之间消息传递的最佳解决方案吗?我知道目前 XMPP 主要用于客户端到服务器到客户端的架构。

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

最佳答案

这取决于你想要做什么以及你正在运行什么硬件。

MQTT 的保活流量非常低。 XMPP 是一种 IM 协议(protocol),在处理所有客户端之间的状态消息时开销要高得多。

如果您有一个小的内存占用限制,那么必须处理 XML 解析器可能会导致无法使用 XMPP。

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

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

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

这一切都取决于...

查看 LinkedIn 最近发布的公告,他们在其中讨论了他们在移动应用中使用 MQTT。

干杯 标记

(顺便说一句,Andy 对我们的提及略有不同。我们在澳大利亚布里斯类昆士兰大学教育创新与技术中心 (CEIT))

关于c# - MQTT 与 XMPP 我应该选择哪个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7129821/

相关文章:

c# - 即使发送了 token ,ASP.NET 身份也为空

c# - 使用 Roslyn CodeAnalyzer 将命名空间添加到类

java - 搜索 JDK 等效项以在收集流时进行转换

android - 在 Android webview 问题上记住密码弹出窗口

c# - XML文档: Root element is missing

c# - 监听 COM 端口时跨线程操作无效

java - 如何在包含文本的页面上打印脚注?

Java计算器

java - 将变量传递给 catch - Java

android - 无法在家庭 WLAN 中通过 wifi 连接 ADB