您的位置:首页 > 其它

推送系统整合方案

2014-06-18 23:59 141 查看

引言

对于一家移动互联网公司而言,推送服务是必不可少的(建议不要频繁推送,用户会烦的)。而针对ios、android、winphone的客户端,各家都提供了相应的推送服务器。然而,各家对外提供的服务接口各有不同。本文结合苹果推送、百度android推送和微软的winphone推送具体谈一下如何整合一套完整的推送方案。

服务接口比较

苹果、百度、微软分别给出了一套推送的服务接口,下表给出了各家提供的服务的一个对比。说明一下,下表给出的性能指标是在实际应用中能够达到的一个性能指标,并不代表最高性能。不过,从对比中也能看出苹果的性能最高(推送过程中需要避免非法token,非法token过多会降低推送性能),因为苹果采用的是tcp长连接,不需要每法送一个就建立一次连接,缺点在于苹果没有提供广播机制(发送一条消息,下发给所有客户端),从这一点上来说,百度的推送机制更好。并且针对个性化推送,百度android推送提供了“标签”,可以对用户分组,给指定组的用户推送消息。而微软提供的推送服务是最挫的。



整合架构

一套完整的推送流程应该包含:

1、客户端上传用户标识(token、uid等)到前置机;

2、前置机获取用户标识通过日志分析程序(我的另一篇关于日志同步分发框架的文章会提到)入库保存;

3、各种提送消息源发送消息给推送服务程序;

4、推送程序接收各种需要推送的内容,广播或者个性化推送给客户端。



推送服务程序自定义标准的推送协议,根据协议确定是推送给IOS服务器还是Android服务器或者WinPhone服务器,是单播还是广播。这样,推送服务程序便独立于事件源,不论事件源是来自编辑推荐还是来自于自动推荐,都可以实现灵活的扩展。

当然,在推送过程中,一些常见的问题还需要注意:

1、及时清除失效的以及非法的token,特别是IOS推送,非法token会大大降低推送速度(断连接),并且还会造成推送消息的丢失;

2、百度android推送会限制推送频率的上限;

3、IOS推送返回非法token对应的id是一个32位整形,如何根据这个id,去删除用户信息库中的非法token,以及token如何存储都是需要考虑的问题;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: