Android推送方案研究

一、 成熟的第三方推送平台


(1)、百度云推送

1、功能介绍:百度云推送服务支持推送三种类型的消息:通知、透传消息及富媒体;支持向所有用户或根据标签分类向特定用户群体推送消息;支持更多自定义功能(如自定义内容、后续行为、样式模板等);提供用户信息及通知消息统计信息,方便开发者进行后续开发及运营。

2、高级特性:

1、账户支持

1.1百度账户

开发者可选择使用 oauth2.0 协议接入百度开放平台,所有用户标识使用百度的 userid 作为唯一标识。

1.2无账户登录体系(我们适合使用这一种方式)

开发者无需接入百度账户体系,每个终端直接通过 apiKey 向 Server 请求用户标识 userid,此 id是根据端上的属性生成,具备唯一性,开发者可通过此 id 对应到自己的账户系统,此方式方便灵活。

2、多帐户登录的别名设置(客户端App支持多帐户登录时使用)

3、SDK支持

1、客户端只支持Android

2、服务器端有开发API, 开发包支持的语言有 PHP、Python、Java 及 Node.js。

没有提到收费和强制声明版权的问题。

(2)、极光推送

1、功能介绍:可以推送的对象:全部,某一个人,或者某一群人。

全部很好办,针对某应用“群发”就好了。Portal(JPush向开发者提供的网页后台)与API都支持向指定的 appKey 群发消息。

要指定向某一个特定的人,或者某一群特定的人,则相对复杂。因为对于 JPush 来说,某一个人就是一个注册ID,这个注册ID与开发者App没有任何关系,或者说对开发者App是没有意义的。

如果要对开发者App有意义的某个特定的用户推送消息,则需要:把 JPush 注册用户与开发者App 用户(我们的公网用户或私有部署的用户)绑定起来。

这个绑定有两个基本思路:

1. 把绑定关系保存到 JPush 服务器端

2. 把绑定关系保存到开发者应用服务器中

后者, Android SDK 当前的版本还未支持。

2、高级特性:

1、每条消息需要确认收到

2、多帐户登录的离线消息

3、多帐户登录的别名设置(客户端App支持多帐户登录时使用)

3、SDK支持

1、客户端支持Android、iOS

2、服务器端有开发API, 开发包只支持java

4、使用许可协议

1、价格策略 免费版只支持推送纯文本消息

2、内置JPush SDK的开发者App产品必须在 “关于” 界面和应用程序的许可协议上注明:“包含极光推送,版权所有(c) 2012, 深圳市和讯华谷信息技术有限公司。

二、自己搭建推送平台

目前可以查到的资料是基于开源的推送平台Androidpn的定制方案。

1、 Androidpn是一个基于XMPP协议的java开源Android push notification实现。它包含了完整的客户端和服务器端。它的服务器端基本是在另外一个开源工程openfire基础上修改实现的,客户端需要用到一个基于java的开源XMPP协议包asmack,这个包同样也是基于openfire下的另外一个开源项目smack。

2、 使用XMPP协议(Openfire + Spark + Smack)

三、Google官方推送

Google第一代推送C2DM和现在的GCM

Android版本限制(必须大于2.2版本),该服务在国内不够稳定、需要用户绑定Google帐号,受限于Google。

四、使用HTTP轮循方式

优点:实现简单、可控性强,部署硬件成本低。

缺点:实时性差。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值