适用于Android客户端/服务器应用程序的理想轮询机制/间隔

时间:2013-07-12 08:30:22

标签: android

我计划在Android中实现聊天应用程序,并且需要做出一些与轮询服务器相关的设计决策:

  1. 我应该多久轮询一次新邮件?每分钟投票是一个不错的选择吗?

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

  3. 我还需要确保应用程序不会快速耗尽电池。我需要在WhatsApp的类似行上设计应用程序。我不知道它如何管理民意调查,但我知道它不是电池杀手。

4 个答案:

答案 0 :(得分:3)

您应该查看XMPP

WhatsApp使用XMPP的修改版本。

这是一个tutorial开始。

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

  1. 为了避免成为电池杀手,你应该在屏幕关闭时停止循环播放,或者在屏幕关闭时使间隔时间很长
  2. 也许你可以保持长期的联系以进行实时聊天。
  3. 使用GCM是更好的选择