纯个人看法,有不妥、不正确的欢迎指出,勿喷。PS:本文意不在讨论孰优孰劣,理解偏颇多多见谅。
移动互联网高速发展的今日,各类型的sns网站、app纷繁复杂,这些其实都离不开一个重要的功能pushservice。
推送,根本上而言就是内容提供商向用户传递消息的一种服务,只不过形式不一样。当年黑莓很火的时候,邮件推送服务就是其主打的特性,然而由于涉及到移动运营商的利益链推送服务受到了很大的限制。最近几年,随着移动互联网的大行其道,推送服务也得到了更多的发展,移动运营商也不得不接受了这种妥协(乔帮主居功至伟啊)。
首先谈下pushservice采用的两种实现方案,一种是长连接、一种短轮循。长连接是在用户与内容服务商之间建立一种长时间的连接,服务端一旦有新的消息立刻发送给客户端。短轮循则是用户在每个轮循周期向服务提供上发送一个内容请求,不管有没有消息都立刻返回。(当然存在其他的综合方案)
那么再谈谈当前比较主流的几种移动设备os是怎么支持推送服务的吧。
当年Symbian红火的时候,qq能后台挂起感觉很NX的样子,其实这已经是一种推送的模型。我们挂起qq,其实建立在我们手机与企鹅间的连接时没有断开的(个人感觉,即时聊天工具应当采用了长连接方式来进行消息推送,一旦服务器收到消息立刻向客户端发送这样才能尽可能的减少时间的延迟)。然而这就带来了一个问题,要支持这种方式就必须后台化的进程,这也是symbian的一大致命伤。应用在你手机里开启后台进程普通用户是很难发现的,加之symbian没有成熟的app市场无法对所有app应用进行约束,这就很难避免安全问题。(其实这一点上android在走symbian的老路了,这一点底下细谈)。
再谈谈Android,Android的出世救活了大批的移动设备厂商,然而也遭到了很多诟病。早期谷歌为了争夺市场,android走了开源合作这条路,这也给google笼络了一批特殊的用户群(设备商)。然而由于过度的开放也埋下了很多安全隐患(android的拥趸勿喷啊)。言归正传,谈谈android的推送,首先说明一点android和symbian一样是支持后台进程的(现在安卓上系统管理应用也都具备着方面的管理功能),这也间接导致了android设备上 存在着套推送服务体系。一种是谷歌内嵌在android系统中的(这个应该是android os内的服务,应用开发商通过与发送推送内容给google,再由google的推送服务统一向目标设备进行转发。用户与推送服务器间建立了一种长连接,并以此接受推送消息),另一种则是移动开发商开发的推送服务(这个原理类似于symbian平台,都需要依赖后台进程)。那么既然google提供了统一的推送服务接入,那各个移动应用开发商还费那么多力去建立自己的推送服务干嘛呢?这就牵扯到了谷歌早期的开放策略了,由于过度的开发,存在着很多的应用市场、也给开发者提供了很多便利。要接入谷歌的推送服务,必须要求应用从google应用市场中被下载,且用户必须要拥有谷歌账户(这是谷歌的补救措施)。而事实上很多用户并没有谷歌账号,而且存在如此多的应用市场,且可以下载破解应用又有多少人会去谷歌市场下载应用呢?因此,大多数的移动开发商只能选择第二种方式来自己建立推送服务。如果每个应用的推送服务都需要开启这样一个后台进程,那可想设备的待机时间将必然会受到一定程度的影响。(而不是通过一个统一的后台进程来服务所有应用,另外后台进程的存在和众多的应用市场也会导致不安全性)
再来谈谈IOS以及windowsPhone,IOS和windowsPhone都通过规避后台进程和严格的应用市场管理,迫使用户从正规的渠道下载应用,也迫使了应用开发商接入apple、ms提供的推送服务,应用开发商向推送服务器发送内容,再由他们通过系统内进程与用户建立连接发送消息内容。
一个屌丝码农告诉大家不知道到的it二三事。
分享到:
相关推荐
push推送浅析,有关push的知识,有空可以多学习学习的。
Android推送技术浅要分析,对各种技术做了分析比较,提出了推送的应用场景。
浅析大数据应用基础上的新闻精准推送.zip
基于WebService的手机APP消息推送机制研究与实现浅析.pdf
iphone推送通知原理,Push原理,ios前台,java后台推送通知
主要介绍了浅析HTML5的WebSocket与服务器推送事件,WebSocket API最大的特点就是让服务器和客户端能在给定的时间范围内的任意时刻,相互推送信息,需要的朋友可以参考下
近期工作遇到需要业务场景如下,需要每天定时推送给另一系统一批数据,但是由于系统是集群部署的,会造成统一情况下任务争用的情况,所以需要增加分布式锁来保证一定时间范围内有一个Job来完成定时任务. 前期考虑的方案...
在复杂的企业应用服务群中,记录日志方式多种多样,并且不易归档以及提供日志监控的机制。...2、ELK经典应用如下ELK经典架构如图1.Logstash部署至服务主机,对各个服务的日志进行采集、过滤、推送。2.E
引言 多媒体技术的发展和宽带网络的普及,使得流媒体技术越来越得到广泛的应用。尽管流媒体直播技术定位于提供实时流服务,然而目前... 由于传统电视信号受传输、播控模式的限制,传统电视的直播只能单向推送--观众
Dwr是为人所熟知的前端框架,其异步推送功能是为人所津津乐道的,下来主要研究一下它的这个功能是怎么应用的;