2012年调研的推送市场(转)

1、Android Push功能现状javascript

Push可以有效地激活用户更多地使用 App,目前大多数应用都有Push功能。html

Push功能依赖于Push服务,如今主流的智能手机操做系统都集成了免费的Push服务,如IPhoneAPNS(Apple Push Notification service)windowsphoneMPNS(Microsoft Push Notification serviceAndroidGCM (GoogleCloud Messaging)java

可是因为Android操做系统是开源的,不少手机厂商都没有预装Google服务,而且Google服务在国内不稳定,因此国内没法使用GCM实现Push功能,这种状况下咱们只能使用第三方的Push服务或本身开发Push服务。node

开发及时的Push服务首先要考虑到性能、并发量、安全性等因素,它是一个很复杂的系统,固然若是App活跃用户数不多,也能够下降复杂性。android

国内应用开发商大多本身部署一个简单的Http服务,客户端每隔一段时间到服务器查询,这种方式的缺点也是显而易见的web

Ø  HTTP请求的数据包较大,会增长数据流量数据库

Ø  不够及时,若是轮询的时间间隔过短就会很耗电、耗流量json

2、第三方Push服务介绍windows

因为上述一些缘由,不少的第三方Push服务应运而生,服务提供商大多数是国外的安全

一、 Urban Airship

Urban Airship是业界最知名的一个提供推送服务的平台,每个月的推送数量达到5.2亿次,平均每分钟的信息发送量约为1.3万次。

除了基本推送服务外,UrbanAirship还提供Rich Push:让Push信息能够带HTML、视频、音频等多媒体信息。此外,UrbanAirship还为iOSAndroid提供In-App Purchase(IAP)服务,帮助开发者处理内容存放和安全支付等问题。Urban Airship提供了一个管理后台。开发者在这里不只能用信息编辑界面来发送Push,还能够监测Push消息的传达状况,观察用户是否产生了交互等统计信息。

 

推送服务支持如下三个平台:

Ø  IOS

Ø  Android

Ø  BlackBerry

 

收费标准(按月活跃用户数计费):

0 to10,000users              $199

10,001to 25,000 users     $499

25,001to 50,000 users     $999

50,001to 75,000 users     $1,499

75,001to 100,000 users  $1,999

活跃用户数超过100,000,按0.24$计费

详细的收费标准请参考:http://urbanairship.com/pricing/

有网友说只要每个月推送量小于一百万条就免费,在官网没有找到,估计这是之前的政策

 

技术支持

官方提供客户端和ServerSDK,很方便调用,而且有完善的文档

 

官方网站:http://urbanairship.com/

二、 push.io

push.io也是一个很出名的推送服务平台,已经成功推送了60亿次通知,固然和Urban Airship比还差一大截。

 

支持如下平台:

Ø  iOS

Ø  Android

Ø  Windows Phone

Ø  Nokia Ovi and S40

 

收费标准:

0.01$/活跃用户/

250k users享受12.5%的优惠

500k users 享受25%的优惠

超过1百万users享受50%的优惠

具体收费标准请参考:http://push.io/pricing/

 

技术支持:

提供SDK和文档

 

不足:

Android SDK使用GCM服务实现的,因此不适合咱们使用

 

官方网站:http://push.io

三、 Pubnub

pubnub是一个云端即时消息服务,经过它咱们能够很方便地建立本身的即时应用。

 

支持的平台:

因为是跨平台的,因此支持全部平台

 

收费标准:

25 $/包含天天2500活跃用户

而后每发送1百万条消息须要额外支付1$,每增长1000个活跃用户需额外支付10$

 

不足:

支持httpwebsocket(长链接,可是数据是经过http协议传输的)协议,因为java没有Websocket协议,因此是使用Http协议轮询,固然也能够用Socket模拟Websocket

官方提供的androidSDK是使用Http协议,javascript SDK使用WebSocket协议。

另外,pubnub的每条消息限制在1800字节

 

官方网站:http://www.pubnub.com/

四、 极光推送

极光推送是国产的一个免费的推送服务,架构很是相似Urban Airship,不少后台网页和操做也基本上和Urban Airship同样。

 

支持的平台:

Ø  Android

Ø  IOS

 

收费标准:

免费

 

技术支持:

提供sdk和开发文档

 

不足:

因为刚上线,性能、并发量、安全性等方面还未知,并且没有承诺永久免费,因此仍是有风险的

 

官方网站:http://jpush.cn/index.jsp

3、自主开发push服务

Push服务是一个很复杂的系统,要考虑到性能、并发量、安全性等因素,这些都是技术上的难题,咱们须要慢慢摸索、积累。

咱们能够参考上述几个服务平台,看看他们是怎么作的

 

设计角度:

Ø  支持多应用,每一个应用分配惟一appKey

Ø  支持多平台

Ø  支持发送到全部设备

Ø  支持发送到指定设备

Ø  支持按时间段发送

Ø  及时推送

Ø  统计推送规律

 

技术角度:

Ø  使用socket长链接,消息可以及时达到

Ø  优化协议,减小数据包大小

Ø  通常使用json数据格式

 

流程:

Ø  生成设备惟一ID

Ø  注册到pushserver

Ø  等待消息

Ø  收到消息

Ø  弹出通知

 

我的对服务器架构的想法:

首先服务器应该是分布式的、可扩展的,其中一个服务做为总服务,而后架设多个子服务器,终端设备须要先链接到总服务拿到须要链接的子服务器地址,而后再链接到具体的子服务器,总服务用于接收各app运营后台提交的push请求,而后经过子服务器分发到每一个终端设备。

流程:

服务器之间的交互:

》架设总服务

》架设子服务

》子服务链接并登陆到总服务

》定时向总服务报告链接状况

客户端登陆过程:

》链接到总服务并获取子服务器地址

》链接并登陆到子服务

》到数据库查询有没有发往此客户端的push

》若是有就发送,发送成功后删除

运营后台发送push过程:

》运营后台向总服务发送push数据

》总服务把数据保存到数据库

》而后把此push下发到子服务

》子服务在链接池里查找有没有发送对象

》发送到对应的客户端并删除数据库里对应的数据

 

附件是我用node.js写的一个demo,彻底按照上面的架构写的,一个有四个模块,server:总服务,nodeServer:子服务,client:客户端,app:运营后台

使用方法:

须要先安装node.js环境(http://nodejs.org),安装完成后在cmd里输入命令:nodepath\fileName.js

》打开server,自动开始监听nodeServer的链接

》而后自动开启一个httpServer,用于监听apppush请求

》打开nodeServer,自动链接并登陆到server,而后自动监听client链接

》打开client,自动建立10000个到nodeServer的链接

》打开app,自动向server发送多条push,而后push下发到nodeServer,最后分发到各client

4、总结

Urban Airship和极光推送这两个第三方推送服务平台是各方面相对比较好的,以咱们目前的活跃用户量来看,若是使用Urban Airship,每个月大概须要支付199$,我以为也能够承受,若是使用极光推送,则须要承担风险。

或者咱们也能够尝试自主开发一个Push服务,如今咱们的活跃用户量较少,性能和并发量方面能够下降一些标准,这样既能够解决咱们面临的问题,也能够锻炼咱们的能力。

 

发件人: Jin ZhengBao(金正宝) 
发送时间: 2012年10月30日 14:08
收件人: Zhao LeiYong(赵雷勇)
抄送: Chen Meng(陈孟); Shan PengFei(单鹏飞); Ning Chao(宁超)
主题: 第三方推送服务调研

 

雷勇 

 

参考如下文章。调研下第三方推送服务(国内外的)。仔细看看文档。写个demo试试,给出个可行性报告。

相关文章
相关标签/搜索