由于公司要做一个android的消息推送功能,让我进行了一个调研,发现网上没有一个集中说明的地方,自己在网上搜罗了一些资料并且自己总结了一下。 对于消息的提醒方式可以分为四种:固定窗口、弹出窗口、手机短信和Push信息。下面的针对于push信息的机制和技术实现向大家介绍一下。 首先,我们要知道什么是Push信息? 所谓信息推送,就是”web广播”,是通过一定的技术标准或协议,在互联网上通过定期传送用户需要的信息来减少信息过载的一项新技术。推送技术通过自动 传送信息给用户,来减少用于网络上搜索的时间。它根据用户的兴趣来搜索、过滤信息,并将其定期推给用户,帮助用户高效率地发掘有价值的信息。 简单的来说,信息推送就是服务器端主动向客户端发送信息,客户端进行接收信息。如下图: 使用推送信息的好处: 1、节省用户的电池电量。 2、你可以通过推送通知来告知你的用户在程序中发生了一些有趣的事,即使程序没有运行。 现在很多应用程序都是用的推送的机制: 包括新浪微博,推送最新的朋友消息;墨迹天气推送最新的天气状况;网易新闻,推送重要的新闻;同花顺手机炒股推送最新的股票资讯;微信,推送最新的语音最新。Gmail、Gtalk推送最新的Mail信息和IM信息。 下面,我们了解一下现在主流手机的push机制。 IPhone(APPLE)的工作机制可以简单的概括为下图: iPhone自3.0之后推出消息推送机制,原理是消息由服务器统一处理。 图中,Provider是指某个iPhone软件的Push服务器,这篇文章我将使用Java作为Provider。 APNS 是Apple Push Notification Service(Apple Push服务器)的缩写,是苹果的服务器。 上图可以分为三个阶段。 第一阶段:Java应用程序把要发送的消息、目的iPhone的标识打包,发给APNS。 第二阶段:APNS在自身的已注册Push服务的iPhone列表中,查找有相应标识的iPhone,并把消息发到iPhone。 第三阶段:iPhone把发来的消息传递给相应的应用程序, 并且按照设定弹出Push通知。 从上图我们可以看到。 1、首先是应用程序注册消息推送。 2、 IOS跟APNS Server要deviceToken。应用程序接受deviceToken。 3、应用程序将deviceToken发送给PUSH服务端程序。 4、 服务端程序向APNS服务发送消息。 5、APNS服务将消息发送给iPhone应用程序。 APNs和iPhone保持 15分钟的心跳式长连接,维护手机和服务器的联系正常,否则手机会不停发起连接,直到连接到服务器为止。程序不必实时开启和主动检查更新,当收到APNs 消息时,iPhone会弹出对话框Push消息并伴随着声音,用户可以选择“view”或者“close”。即使用户当前处在离线状态,用户收到消息之后 激活程序,再通过程序链接应用服务器下载邮件或者录音。 WP7(Microsoft)的Push机制如下图: WP7的也有相应的推送服务, 无论程序是否开启都可以界面顶部推送Toast Notification,并显示10秒。WP7的Push Client负责于服务器交互,接受到消息时再传送给相应的应用程序,而不需要应用程序各自维护一个进程。如果程序被钉在首页,服务器推送瓦片通知 (Tile Notification),改变瓦片的背景图片、数字和标题属性。而弹出框式的原生推送(Raw Notification)只能应用在程序开启时,容许实时更新界面 [...]