admin管理员组

文章数量:1533099

2024年6月25日发(作者:)

百度云,极光,个推的区别

2013-07-16 15:05 51cto编辑 张叶青 51cto整理 字号:

T

|

T

作为Android开发人员,在做应用开发时我们常常会碰到消息推送,因为Android不像苹果,

本身没有消息推送机制,通常采用的是基于XMPP协议的推送,但这种开发很麻烦,因此在

市场上应运而生了一种封装好的推送方式:极光推送,它的出现大大节省了开发时间,极光

推送一度占领移动开发的市场,但是最近,百度推出了新的推送方式:百度云推送,在市场

的反应也相当不错,作为开发者,有时候不知道选择哪一种方式的推送合适,下面就将详细

介绍下这两者的区别和优势,希望你能从中找到答案。

AD:2014WOT全球软件技术峰会北京站 课程视频发布

百度云推送的机制和特点:

1.单播消息推送

描述

开发者向应用的特定终端或特定用户推送消息。 特定终端对于应用来说,就是安装了

应用的一台具体的设备。 而一个用户可能有多个端,在某些应用场景下,我们希望消息是

针对用户的——应用的同一个用户在他的所有终端上都能收到消息,这时候我们就需要向特

定用户推送消息。

解决思路

(1)向应用的特定终端推送消息

一个channel id指定一个终端,因此在这种需求下,开发者需要通过服务端API,向

一个特定channel id推送消息。在推送之前,客户端应用通过绑定接口的返回值获取到

channel id,并通过网络等手段发送给开发者,开发者需自行维护channel id。

例如,Android客户端,在调用了startWork之后,自定义消息 receiver将会收到返

回值,其中包含了channel id、user id等信息。

(2)向应用的特定用户推送消息

云推送用user id来表示用户,因此在这种需求下,开发者需要通过服务端API,向一

个特定user id推送消息。和channel id获取方式类似,客户端应用通过绑定接口的返回

值获取到user id。开发者需要自行维护user id。

应用场景举例

在线问答应用。用户A用手机发表一个问题,问题的解答并不是实时的。假设在第二天

用户B发表了第一个解答,这时需要将答案单独推送给A。

解决方案

用户A发表问题时,记录问题id及其对应的A的user id(或channel id)。用户B

发表解答时,通过服务端API向问题id对应的user id(或channel id)推送解答。

2.用户分组的消息推送

描述

开发者向应用的符合特定分类条件的若干用户的集合推送消息。广播是分组推送的特例,

它向应用的所有用户(同时也是所有端)推送消息。

解决思路

云推送通过Tag(标签)这种技术方式来实现用户分组的功能。例如,对于分类信息的

应用,一个用户观看了体育栏目,就给该用户打一个Tag——sport。6月的某一天NBA总决

赛热火夺冠了,则向sport这个Tag推送一条及时的夺冠新闻。

应用场景举例

阅读应用。对不同阅读喜好的人群推送不同类别的新图书广告。

解决方案

应用提供喜好设置页面,用户勾选不同的类别,触发对应Tag的设置。或者用户阅读了

某个类别的图书,触发对应Tag的设置。在服务端,给特定类别图书的Tag推送新书广告。

3.使用自己的账户系统或百度账户

描述

开发者可以使用自己的账户体系开发应用,或者应用就是无账户的。开发者也可选择使

用百度账户作为应用账户系统的接入。

解决思路

(1)使用自己的账户系统或者无账户系统

这两种情况,云推送都是无法理解账户信息的,所以对于云推送来说都属于无账户体系。

云推送通过终端标识(channel id)和应用标识(APIKey)来唯一确定一个应用的一个特定

本文标签: 推送应用用户