一、主流的第三方推送平台分类
手机厂商类:小米推送、华为推送;
第三方平台类:个推推送、极光推送、友盟推送;
BAT大厂:阿里云移动推送、腾讯信鸽推送、百度云推送。
二、推送方案的公认评价采取4s标准
1、safe(安全)
推送方案应支持透传及各种加密方案,保障信息传递安全。推送方案的ID系统应该独立于已有的网站或服务的ID系统,这样保障用户在不同手机上登录后的信息投递准确性,避免因为取消绑定事件失败因网络传输而造成的信息误投送。
2、stable(稳定)
稳定包括两个部分:
服务端稳定性:因为使用长连接方案,对服务器的开销和要求很大,推送方案对服务器开发要求很高,海量线程连接下的服务器稳定性是非常具有挑战性的。
一般的评判标准包括:
-同时在线时峰值(一般按照百万并发连接时服务器稳定性评测);
-高并发时消息平均延迟时间(一般按照1分钟处理1百万条信息评测);
- 服务稳定性(一般要求全年99.9%以上可用,有备份,有负载均衡等)。
手机端的稳定性:主要是因为中国的复杂网络状况及手机型号适配情况造成手机长时间稳定联网较困难,所以稳定性非常重要,一般的评判标准包括:
-每日联网23.5小时以上用户比例(表征联网稳定性)
-消息发送后9小时内收到率 (表征到达率)
3、save(省电省流量省成本)
省电应注意CPU休眠,一般用服务缩短待机时间百分比评判;
省流量应注意协议的修改和冗余数据包的处理,一般用空载待机月流量评判;
省成本应考虑单服务器承载同时连接数,可承载同时连接数越多成本越低。
4、slim(体积小)
推送服务应该体积尽量小,不影响主程序的大小和复杂度,一般以小于300K为宜。
三、平台性能表格
四、其他影响因素
1、开发成本
个推支持更多的服务端语言的支持,方便了更多的使用不同开发语言的开发者来使用个推的推送服务。开发文档简洁易懂。
2、进程保活
BAT大厂的推送:
BAT大厂其实并没有什么优势,用了腾讯信鸽推送,不一定能依靠微信保证App永远内部不被杀死。手机淘宝除了自家的阿里云的移动推送,同时也使用其它的第三方推送平台(比如友盟推送)。
手机厂商推送:
操作系统不会杀死属于自己品牌的推送服务。
手机厂商的推送服务在自家的手机上属于系统级别的服务,这意味着系统不会杀死自家的推送服务。比如说,Android原生系统是不会杀死C2DM消息推送服务,MIUI系统是不会杀死小米的推送服务。
第三方平台类:
推送系统会共享一条推送渠道。
这意味着假设你接入了个推推送,而恰好新浪微博也接入了个推。
有一天你的App被杀死了,但这时用户启动了新浪微博,那么推送系统也就会通过共享的推送通道顺便把你推送消息送达到手机上,然后还可能把你的进程也唤醒(被“保活”了)。
如果希望进一步提高推送的效果,其实可以集成多个手机厂商的推送服务和第三方平台,比如小米渠道用小米推送,华为渠道用华为推送,再结合个推推送,但这样的实现成本会大一些。可借鉴分层架构设计:http://36kr.com/p/5073628.html