IOS平台的几个推送服务的对比

IOS平台的几个推送服务的对比  

2013-10-09 13:37:01|  分类:
云计算 |举报
|字号 订阅

       最近研究了一下极光推送(JPush),百度云推送和个推在IOS平台的推送机制,做了一下对比。
       首先, 介绍苹果推送通知服务的推送机制(APNS: Apple Push Notification Service):


                                                  图1  APNS的推送流程

上图清晰地展示了APNS整个工作流程,其中Provider是第三方开发者的服务器。整个流程分三个阶段:

  • 第一阶段:应用程序把要发送的消息、目的iPhone的标识打包,发给APNS。
  • 第二阶段:APNS在自身的已注册Push服务的iPhone列表中,查找有相应标识的iPhone,并把消息发送iPhone。
  • 第三阶段:iPhone把发来的消息传递给相应的App,并且按照设定弹出Push通知。

极光推送(JPush):
      JPush在IOS平台上有完整的推送服务,他整个推送过程完全不依赖APNS的服务,也就是图1中的APNS变成了JPush自己的Push服务器。Iphone到Client App这个过程被简化了,JPush采用的是透传方式,消息的传递对于用户是透明的,不可见的,消息从JPush服务器直接就传到了Client App,用户无法感知。

百度云推送:
      百度云推送是基于APNS的,也就是说他仅仅是APNS的一个代理,他的推送过程如下图:

                     
                                                     图2  百度云推送的推送流程(IOS)

 

 整个过程分为一下几个阶段:

  1. 管理控制台或者Server SDK初始化IOS App的证书(分为开发版证书和发行版证书)。
  2. 运行在手机上的Push SDK执行推送的初始化动作,将AppKey和DevicesToken上传给云推送服务器,服务器保留。
  3. 管理控制台或者Server SDK向云推送服务器发送一条推送指令,服务器接到指令后,将控制台传来的UserId(如果是广播没有UserId),Msg,与服务器保留的DevicesToken和证书一并打包传给APNS服务器。
  4. APNS接到数据后,根据UserId,将消息推送给指定的IPhone设备。

PushSDK 在APNS的编码基础上增加自己服务的初始化和绑定接口代码。

个推

     个推的做法就更简单了,他的整个交互图如下:

     

                                                              图3  个推推送交互图(IOS)

       他对开发商的要求最高,他的官方论坛上有这么一句话:“开发者首先有一个自己的iOS推送组件,该组件可以实现从你们到苹果服务器的推送,根据我们提供的协议增加相应接口”。图3的右半部分,也就是第三方到APNS这个部分都是由第三方自己实现的,个推仅仅是实现个推服务器与第三方之间的交互。
       图中各个函数的含义:

  • auth():个推服务器向第三方发送“验证”指令,如果验证结果正确,则第三方返回Token,8个推服务器保留这个Token。
  • get_tags():个推服务器向第三方发送“获取tag”指令,第三方向个推服务器返回当前存在的tag列表,个推服务器保留。
  • push_by_tags():个推服务器根据保留的tag列表,可以选择向一些tag发送消息,讲“向tag发送消息”的指令传递给第三方,第三方完成消息发现送任务。
  • push_by_divece():个推根据divicesId调用第三方发送接口,完成发送任务。

纵观整个流程,个推服务器做的都是一些比较简单的事情,他要求第三方根据他的协议完成auth(),get_tags(),push_by_tags(),push_by_divice()接口,并给出API的地址,供个推服务器调用。笔者认为他这样做的原因是希望能够与android平台的推送共用一套系统,便于管理维护。

2014年2月25日更新:
   笔者今天去个推主页查看的时候发现个推的解决方案换了,个推最近自己提供了到APNS组件,这样第三方开发者就不需要自己实现到APNS的组件服务了,只需要把IOS的证书以及证书密码传给个推即可

时间: 2024-08-31 02:33:03

IOS平台的几个推送服务的对比的相关文章

留住你的用户:8款第三方移动推送服务

所谓"成功易,守功难",开发者最不愿看到的就是,最初苦心经营的用户不断流失.有统计显示,做了Push的应用的留存率,是没有做Push的应用的两倍.本文将为开发者们介绍8个国内外比较知名的第三方推送服务.   国外针对大量应用做了一个统计,发现平均一个应用一般6个月的用户留存率只有 15%,但做了Push后留存率达到30%,提高一倍.虽然Push对提升应用的用户黏性有益,但需要投入一定的开发成本,所以许多开发者把目光投向第三方推送服务.以下推荐几个国内外比较知名的第三方推送服务商,帮你&

解析php做推送服务端实现ios消息推送

本篇文章是对php做推送服务端实现ios消息推送的方法进行了详细的分析介绍,需要的朋友参考下   准备工作1.获取手机注册应用的deviceToken(iphone手机注册应用时返回唯一值deviceToken) 2.获取ck.pem文件(做手机端的给) 3.获取pass phrase(做手机端的给) testpush.php文件 复制代码 代码如下: <?php //手机注册应用返回唯一的deviceToken $deviceToken = '6ad7b13f b05e6137 a46a60e

ios-使用Unity 3D在IOS及安卓平台上实现消息推送

问题描述 使用Unity 3D在IOS及安卓平台上实现消息推送 要求如标题,使用Unity 3D在不打开应用程序的情况下,可以实现消息推送. 请告知实现逻辑和关键的代码,如果有调用API接口,请描述API接口的名称及调用参数. PS.不是程序员,代人提问,描述不清楚的地方请提出勿喷,我会询问后补充. PSS.公司急求,解决问题实现功能的可以提供赏金.可以网上搜索悬赏任务(详细就不说了省的被删),也可以通过站内消息沟通联系.

Android推送服务:百度云推送

一.推送服务简介 消息推送,顾名思义,是由一方主动发起,而另一方与发起方以某一种方式建立连接并接收消息.在Android开发中,这里的发起方我们把它叫做推送服务器(Push Server),接收方叫做客户端(Client).相比通过轮询来获取新消息或通知,推送无论是在对客户端的资源消耗还是设备耗电量来说都比轮询要好,所以,目前绝大多数需要及时消息推送的App都采用Push的方式来进行消息通知. Android生态系统原本提供了类似于Apple iOS推送服务APNS的GCM(Google Clo

友盟表示消息推送服务已经全面开放

移动开发者服务平台友盟曾于2013年10月推出"一站式"解决方案,为开发者提供从开发到运营的一系列服务,其中就包含消息推送服务.而在日前的GMIC大会上,友盟表示消息推送服务已经全面开放,目前Android开发者可以到友盟开发者中心直接下载SDK使用. 当下,消息推送已成为移动开发者增强用户黏性的好方法.而友盟消息推送的优势在于,能够在更大程度上发挥友盟各产品线的协同效应.具体来说,开发者使用友盟统计分析.社会化组件.自动更新等产品,之前更多的是辅助其进行分析和决策,而消息推送则把决策

Worktile中百万级实时消息推送服务的实现

在团队协同工具 Worktile的使用过程中,你会发现无论是右上角的消息通知,还是在任务面板中拖动任务,还有用户的在线状态,都是实时刷新.Worktile中的推送服务是采用的是基于XMPP协议.Erlang语言实现的Ejabberd,并在其源码基础上,结合我们的业务,对源码作了修改以适配我们自身的需求.另外,基于AMQP协议也可以作为实时消息推送的一种选择,踢踢网就是采用 RabbitMQ+STOMP协议实现的消息推送服务.本文将结合我在Worktile和踢踢网的项目实践,介绍下消息推送服务的具

我想有个应用:吃喝玩乐自动推送服务APP

我想有个应用,每天需找一个idea,好玩的,有趣的,咱们一起来侃侃.乘着飞机.火车或者自驾到某一城市旅游,进入某地服务区你肯定会收到来自移动或者联通服务的漫游欢迎短信,上面会简短的向游客介绍当地的人文特色或景点等,还有更贴心的当天天气预报.移动互联时代的到来,智能手机的应用范围越来越广泛,仅仅是漫游欢迎短信服务已经不能满足旅行者了,于是我想有个应用:吃喝玩乐自动推送服务APP,初到某地,无需用户输入关键字搜索,该应用基于LBS自动推送天气预报.当地旅游景点,还有贴心的商城店庆预报促销打折活动提醒

推送通知iOS客户端编写实现及推送服务器端编写

1.iOS客户端编程 推送通知技术在Mac OS X和iOS系统上都可以运行,我们本章主要介绍iOS客户端编程,推送通知的编程比较简单,编程的关键是获得令牌,这是从APNS返回的,然后还有把提交给内容提供商.下面我们看看开发之前的一些准备工作.   配置Xcode工程 编写iOS推送应用需要在Xcode工程中进行一些配置,这些配置是主要是设置代码签名标识,代码签名标识的前提要有配置概要文件(Provisioning Profiles). 有了配置概要文件即可以设置代码签名标识了,需要下载概要文件

iOS开发之(APNS)远程推送实现代码 附证书与真机调试_IOS

远程推送通知 什么是远程推送通知 顾名思义,就是从远程服务器推送给客户端的通知(需要联网)远程推送服务,又称为APNs(ApplePush Notification Services) 为什么需要远程推送通知传统获取数据的局限性只要用户关闭了app,就无法跟app的服务器沟通,无法从服务器上获得最新的数据内容远程推送通知可以解决以上问题不管用户打开还是关闭app,只要联网了,都能接收到服务器推送的远程通知远程推送通知使用须知所有的苹果设备,在联网状态下,都会与苹果的服务器建立长连接什么是长连接只