推送系统整合方案

引言

对于一家移动互联网公司而言,推送服务是必不可少的(建议不要频繁推送,用户会烦的)。而针对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如何存储都是需要考虑的问题;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值