消息推送的原理

来源:互联网 发布:webofscience数据库 编辑:程序博客网 时间:2024/05/17 05:14

消息推送的目的:根据用户的兴趣来搜索、过滤信息,并将其定期推给用户,帮助用户高效率地发掘有价值的信息

答:一、原理  
  
消息推送有两种,一种是(pull拉的方式)客户端定时直接到服务器搜索消息,如果发现有新的消息,就获取消息下来;缺点:费流量和电量,信息不是最新的

另一种是(push 推送方式)服务器向客户端发送消息,也就是当有信息消息时,服务器端就会向客户端发送消息。优点:省电,省流量,信息是实时的。



Android 平台上长连接的实现

为了不让 NAT表失效,我们需要定时的发心跳(为了保持长链接,客户端定时给服务器法送数据,表示我还在活着),以刷新 NAT表项,避免被淘汰。

Android 上定时运行任务常用的方法有2种,一种方法用 Timer,另一种是AlarmManager

Timer

Android Timer类可以用来计划需要循环执行的任务,Timer的问题是它需要用 WakeLock CPU保持唤醒状态,这样会大量消耗手机电量,大大减短手机待机时间。这种方式不能满足我们的需求。

AlarmManager  (极光推送原理

AlarmManager Android系统封装的用于管理 RTC的模块,RTC (Real Time Clock)是一个独立的硬件时钟,可以在 CPU休眠时正常运行,在预设的时间到达时,通过中断唤醒 CPU

这意味着,如果我们用 AlarmManager来定时执行任务,CPU可以正常的休眠,只有在需要运行任务时醒来一段很短的时间。极光推送的 Android SDK就是基于这种技术实现的。



0 0