2011-07-27 40 views

回答

0

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

如果您想直接发送消息到您的应用程序,那么您的应用程序需要某种服务器在某个端口上侦听。这是不好的,因为:

  1. 连接通常是防火墙,你不能只是听一些端口,
  2. 您的设备可以被关闭或不连接(那么你的应用程序服务器将需要重试),
  3. 应用程序服务器需要知道您的设备的地址,
  4. 应用程序需要始终运行(至少服务器模块),这不是电池友好的。
1

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

  1. 客户调查在一定的时间间隔新消息。 下行:不是实时解决方案。如果您频繁轮询,则会耗尽电池电量,消耗您的配额(如果您没有无限制的套餐)。通常你会做很多不必要的工作和交通,因为大多数民意测验都不会返回任何消息。
  2. 始终保持连接状态。 下行:因为手机在进入睡眠模式时可以关闭连接,所以很难在技术上交付。 (至少没有保证他们不会)。此外,您正在全天候运行后台应用程序。

C2DM的当前状态会给你:

  1. 获得信息的能力,就算你的应用程序没有运行如Android将启动您的应用程序(您配置它的一部分,而不是当消息到达时,必然是整个用户界面)。
  2. 一个中央的共享通道来传递这样的消息。如果10个应用程序需要手机上的实时通知,则这是一个单一设施,而不是10个应用程序正在运行并且并行轮询。
  3. 承诺:由于这是Google针对推送消息传递所制定的API,因此您可以期待它在未来得到优化。一种改进可以是运营商级消息传递以启动C2DM会话。这意味着你可以将100%的手机“智能”部分睡着。
相关问题