当前位置: 首页 > 面试题库 >

MQTT与XMPP应该选择哪个?

郭盛
2023-03-14
问题内容

总览

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

MQTT

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

XMPP

这似乎有很多实现,示例,甚至还有一本书:)。但是,主要目的似乎是为即时消息客户端和Google
Talk之类的。这将是服务器和客户端之间消息传递的最佳解决方案吗?我知道当前XMPP主要用于客户端到服务器到客户端的体系结构。

如果我错了,请指正我,并在此先感谢您的指导。


问题答案:

这取决于您要做什么以及所运行的硬件。

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

如果您的内存占用量约束很小,则必须处理XML解析器可能使XMPP的使用成为不可能。

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

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

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

这一切都取决于…

追踪领英最近发布的公告,他们讨论在移动应用中使用MQTT的情况。

干杯马克

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



 类似资料:
  • 我用<code>列表视图</code>创建了一个活动。这是一个朋友。 我想让它选择将其添加到另一个。 我不知道选择哪个<code>视图</code>最好<代码>循环视图或

  • 问题内容: 我的Django项目将由具有数十万个条目的大型数据库支持,并且将需要支持搜索(我可能最终会使用djangosearch或类似的项目。) 哪个数据库后端最适合我的项目,为什么?您能否推荐任何好的资源以供进一步阅读? 问题答案: 作为最近将项目从MySQL切换到Postgresql的人,我并不后悔切换。 从Django的角度来看,主要区别在于Postgresql中更严格的约束检查,这是一件

  • 对于定义像下面这样的整型类型的编译时常量(在函数和类作用域),哪种语法是最好的? 也适用于C++98/03编译器,而至少需要C++11。两者之间还有其他区别吗?在现代C++代码中,应该选择其中一个或另一个,为什么? 对于情况,这是GCC6.2生成的程序集: 另一方面,对于,它是: 虽然在中,我得到了相同的(优化的)程序集: 但是,s似乎有不同的行为。我在这里单独提出了一个问题。

  • 问题内容: 我有两个实现和的接口。我想创建一个实例。具体实现是应该由用户选择还是应由用户进行选择。我尚未设计用户界面,因此没有限制用户如何进行此选择。 我知道有以下几种选择: 抽象工厂模式的用法 使用反射根据给定的类名创建实例 使用反射根据给定的类对象创建实例 这些选项的优缺点是什么? 请注意,尽管有几种类似的问题在讨论一种方法或另一种方法,但我没有找到一个比较。 问题答案: tl; dr 我建议

  • 问题内容: 我将要开发一个具有近实时聊天功能的网站。我知道可以使用xmpp或websocket协议来实现。我也知道xmpp协议是在1999年开发的,我想它应该已经很成熟了。另一方面,websocket协议是在2011年开发的。 如果xmpp能够很好地处理实时对话,那么对websocket的需求是什么? 两种协议之间的主要区别是什么? 我什么时候应该选择其中一个呢? 问题答案: 简短的答案是“两者”