在应用程序服务器上使用C2DM有什么好处?

时间:2011-07-27 09:18:06

标签: android-c2dm application-server

为什么应用服务器无法直接向应用程序发送消息?为什么你需要中间的C2DM服务?

2 个答案:

答案 0 :(得分:1)

要从服务器端发送消息,您有两种可能:

  1. 客户端以特定间隔轮询以查找新邮件。 下行:不是实时解决方案。如果您过于频繁地轮询它将耗尽电池,消耗您的配额(如果您没有无限制的包裹)。通常,您会执行大量不必要的工作和流量,因为大多数民意调查都不会返回任何消息。
  2. 始终保持联系。 下行:技术难以提供,因为手机在进入睡眠模式时可以关闭连接。 (至少没有什么可以保证他们不会)。此外,您正在全天候运行后台应用程序。
  3. C2DM的当前状态将为您提供:

    1. 即使您的应用程序未运行而获取消息的能力,Android也会在消息到达时启动您的应用程序(您配置的部分,不一定是整个UI)。
    2. 提供此类消息的中央共享渠道。如果10个应用程序需要在手机上进行实时通知,则这是一个单独的工具,而不是10个并行运行和轮询的应用程序。
    3. 承诺:由于这是Google批准的用于推送消息传递的API,因此您可以预期它将在未来进行优化。一种改进可以是用于发起C​​2DM会话的运营商级消息传递。这意味着您可以将手机的“智能”部分100%放入其中。

答案 1 :(得分:0)

因为应用程序不能(或不应该)充当服务器。

如果您想直接向您的应用发送消息,那么您的应用程序需要在某个端口中侦听某种服务器。这很糟糕,因为:

  1. 连接通常是防火墙,你不能只是在某个港口听,
  2. 您的设备可以关闭或没有连接(然后您的应用服务器需要重试),
  3. 应用服务器需要知道您设备的地址,
  4. 应用程序需要一直运行(至少是服务器模块),这不是电池友好的。