使用 XMPP 与移动应用程序进行频繁通信

Posted

技术标签:

【中文标题】使用 XMPP 与移动应用程序进行频繁通信【英文标题】:Using XMPP for frequent communication with mobile app 【发布时间】:2011-10-27 18:37:43 【问题描述】:

我正在开发的移动应用程序需要服务器在短时间内频繁地与其通信,包括应用程序要显示的实时(或非常接近的)内容(来自其他用户)。

它将是一个 iosandroid 应用程序。

我正在研究 C2DM,在此页面 http://code.google.com/android/c2dm/quotas.html 上,在底部建议考虑“实现 XMPP 或您自己的协议来交换消息”。

我想在服务器和应用程序之间进行通信的内容并不容易落入 XMPP 通常的聊天记录中,您将如何实际实现它?

是否会为服务器和移动应用程序语言选择合适的 XMPP 库,然后制作自定义服务器(和客户端)?这不会耗尽手机的电池吗?可以通过 RESTful 架构完成吗?

(如果有帮助,目前没有为服务器做出任何决定 - 除了它必须具有高度可扩展性)。

【问题讨论】:

【参考方案1】:

如果你想交流的东西可以很容易地表示为 XML 并且不太大,那么可以通过 XMPP 轻松完成。 XMPP 是非常可扩展的。您将不得不编写客户端(意料之中)并使用许多可用服务器之一。服务器上的定制通常意味着编写一个组件(通用并受规范支持)或某种插件(这将是服务器特定的),但如果没有更多信息,我无法告诉你是否需要。

它不仅仅用于聊天应用程序,尽管那将是最常见的用途。几乎可以处理任何基于文本的即时消息(以及其他)。有大量的extensions to the base protocol 来支持各种功能。

【讨论】:

另外,特别是在电池寿命的情况下,空闲的TCP连接没有任何明显的影响。有关一些有用的信息,请参阅xmpp.org/extensions/xep-0286.html(不要被该文档当前的“延迟”状态所推迟——作者应该更新它,信息仍然相关)。

以上是关于使用 XMPP 与移动应用程序进行频繁通信的主要内容,如果未能解决你的问题,请参考以下文章

如何创建与 android 聊天应用程序通信的节点 xmpp 服务器

移动设备之间的实时 P2P 通信

什么移动框架适合需要频繁进行数据库通信的项目?

XMPP使用简单介绍--登录

如何从服务器端 Java 应用程序发送 XMPP 通知?

XMPP接受发送消息