1

我打算在 Android 中实现一个聊天应用程序,并且需要做出一些与轮询服务器以获取更新相关的设计决策:

  1. 我应该多久轮询一次新消息?每分钟轮询会是一个不错的选择吗?

  2. 如何支持实时聊天?如果用户发送消息,是否应该每 5 秒进行一次轮询,然后在没有收到新消息的情况下返回长轮询间隔?

我还需要确保应用程序不会很快耗尽电池电量。我需要在与 WhatsApp 类似的线路上设计应用程序。我不确定它如何管理轮询,但我知道它不是电池杀手。

4

4 回答 4

3

你应该看看XMPP

WhatsApp 使用 XMPP 的修改版本。

这是一个入门教程。

于 2013-07-12T08:50:13.967 回答
0

轮询不是此类应用程序的答案。如果您的应用程序完全基于 Android,您应该查看 Google Cloud Messaging Framework ( http://developer.android.com/google/gcm/index.html )。

这允许您通过 xmpp(或 http ping 拉)将消息推送到单个客户端。这样他们几乎可以立即获得更新。

于 2013-07-12T08:45:20.620 回答
0

对于聊天,我会进行两种不同的投票。首先,如果应用程序在后台(每分钟或类似的东西)并且如果应用程序每秒启动一次或者可能是长轮询:http ://en.wikipedia.org/wiki/Push_technology#Long_polling

于 2013-07-12T08:45:38.353 回答
0
  1. 为了避免成为电池杀手,您应该在屏幕关闭时停止轮询循环,或者在屏幕关闭时将间隔设置为很长
  2. 也许您可以保持长期联系以进行实时聊天。
  3. 使用GCM是更好的选择
于 2013-07-12T08:46:42.313 回答