Android 推荐的实现推送通知的方法

Android 推荐的实现推送通知的方法,android,iphone,ios,push-notification,apple-push-notifications,Android,Iphone,Ios,Push Notification,Apple Push Notifications,我正在为Android和iPhone构建一个应用程序。此应用程序需要接收用户收件箱中新邮件的通知。作为应用程序开发人员中的一个不速之客,我想知道你们中是否有人可以建议实现我这里需要的东西的最佳方法 我对安卓系统的了解比iPhone多,所以我对后者的理解可能不够。根据我的阅读和理解,我相信我需要在我的应用程序第一次启动时启动服务(或者每次启动设备时指示设备启动服务)。然后,该服务将与服务器交互以接收通知并显示它们。单击通知将启动应用程序 我的选择是 C2DM或APNS 城市飞艇 我自己的服务器使用

我正在为Android和iPhone构建一个应用程序。此应用程序需要接收用户收件箱中新邮件的通知。作为应用程序开发人员中的一个不速之客,我想知道你们中是否有人可以建议实现我这里需要的东西的最佳方法

我对安卓系统的了解比iPhone多,所以我对后者的理解可能不够。根据我的阅读和理解,我相信我需要在我的应用程序第一次启动时启动服务(或者每次启动设备时指示设备启动服务)。然后,该服务将与服务器交互以接收通知并显示它们。单击通知将启动应用程序

我的选择是

  • C2DM或APNS

  • 城市飞艇

  • 我自己的服务器使用与客户端的大部分空闲TCP连接

  • 根据我选择的选项,我的客户端实现和服务器端实现都会发生变化

    你们推荐什么?有没有其他方法来做我需要做的事情

    非常感谢您的帮助

    更新:


    基于jbat100的答案。事实上,苹果不允许我编写自己的服务器来直接与我的应用程序通信以获取通知,这意味着必须使用APN。因此,选项3完全不适用。这意味着我们要么使用城市飞艇,要么直接与APNS和C2DM对接。根据我的研究,这两种情况下所涉及的工作是可比的,因此仅为支持通知而额外支付4-5K/mo是没有意义的。因此,我计划实施方案1。如果你们中有人不这么认为,请在下面留下评论


    谢谢。

    它们必须单独处理。在iOS推送通知的情况下,您必须通过Apple推送通知服务(编程指南),它们有一个非常特定的协议,您的服务器必须遵守该协议,如中所述。我不知道Android,它可能会完全不同,不那么集中。

    C2DM可能是最简单的。但是,我想你也可以试试城市船。实现您自己的服务器是一件痛苦的事情。

    基于jbat100构建答案。事实上,苹果不允许我编写自己的服务器来直接与我的应用程序通信以获取通知,这意味着必须使用APN。因此,选项3完全不适用。这意味着我们要么使用城市飞艇,要么直接与APNS和C2DM对接。根据我的研究,这两种情况下所涉及的工作是可比的,因此仅为支持通知而额外支付4-5K/mo是没有意义的。因此,我计划实施方案1。如果你们中有人不这么认为,请在下面留下评论。

    我的情况非常相似,我首先发布了我的Android应用程序,现在正在开发一款iOS应用程序。对于Android,我使用C2DM实现推送通知,并从我的谷歌应用程序引擎(GAE)应用程序发送通知。C2DM基本上需要向Google的服务器发送HTTP消息。因此,您向URL发送一个HTTP POST


    然而,iOS需要在专用端口上建立专用TCP连接,并且GAE环境不允许任何外部协议,端口80上的HTTP除外。所以,我做了很多研究,城市飞艇似乎是答案。它们提供了一个HTTP接口,我可以从我的GAE环境访问该接口,并将其转换为苹果服务器可以理解的协议。尽管如此,它们的定价似乎令人困惑——每月有100万份免费通知,此后则有十分之一的通知。这太奇怪了,因为他们每个月免费赠送1000美元?非常奇怪。我正在考虑试用它们,但我认为最好的高容量替代方案是使用您自己的实现,并将其部署到Amazon的AWS上或购买其他廉价的第三方主机。

    重要提示:C2DM已于2012年6月26日正式弃用。这意味着C2DM已停止接受新用户和配额请求。不会向C2DM添加任何新功能。然而,使用C2DM的应用程序将继续工作。鼓励现有的C2DM开发者迁移到新版本的C2DM,称为Android的Google云消息(GCM)。有关更多信息,请参阅C2DM到GCM迁移文档。开发人员必须使用GCM进行新的开发

    我无法解释Android方面的问题,但我可以告诉你,我最近在Heroku上安装了一个非常简单的Rails应用程序,它通过APN向我的iOS应用程序发送推送通知。我使用了gem,在不到20分钟的时间内,我就在iOS应用程序中收到推送通知。

    这回答了我的部分问题。这意味着APNS是iOS设备的唯一可能的方式。我认为您可以非常轻松地编写自己的APNS服务器。这很简单,看看这个