Android、iOS和Windows Phone中的推送技术

发表于:2014-8-26 09:43

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:geekguy    来源:51Testing软件测试网采编

  推送并不是什么新技术,这种技术在互联网时代就已经很流行了。只是随着进入移动互联网时代,推送技术显得更加重要。因为在智能手机中,推送从某种程度上,可以取代使用多年的短信,而且与短信相比,还可以向用户展示更多的信息(如图像、表格、声音等)。
  推送技术的实现通常会使用服务端向客户端推送消息的方式。也就是说客户端通过用户名、Key等ID注册到服务端后,在服务端就可以将消息向所有活动的客户端发送。
  实际上,在很多移动操作系统中,官方都为其提供了推送方案,例如,Google的云推送、IOS、Windows Phone7/8也都提供了类似的推送方案。不过这些推送方案的服务器都在国外,有一些推送服务(如Google的云推送)在国内由于某些原因不太稳定,所以国内近几年涌现出了很多专门为国人打造的推送服务。
  本文将从各种流行移动操作系统入手介绍推送技术的各种实现方式。当然,我们的主要目的是讨论Android的推送技术。
  一、iOS的推送技术
  Apple为IOS提供了很完美的推送方案,其基本原理是Apple提供了自己的推送服务器,叫APNS(Apple Push Notification Service,苹果推送通知服务器)。而客户端设备(IPhone、IPad等)直接与APNS建立长连接。不过向客户端设备发送的消息并不是由APNS产生的,而是在需要发送消息的用户自己提供的服务器(称为Provider)中产生的,然后Provider将消息传送给APNS,最后由APNS将消息传送给客户端设备。也就是说,消息最开始由Provider产生,然后Provider将消息传送给APNS,最后再由APNS传送给客户端设备。消息传递的过程如图1所示。
  
  在发送消息到客户端设备接收到消息的过程中,始终伴随这一个令牌的传送(device token)。要想使用APNS提供消息服务,应用程序需要先向IOS注册需要提供的一个必要的信息就是与当前设备有关的device token,IOS在接收到devicetoken后,会向APNS查询这个device token是否在APNS上注册了(所有的IOS设备在第一次使用时都需要向苹果服务器注册一个账号,否则无法从AppleStore下载应用,当然更无法使用推送服务了),如果已经注册,APNS会直接向应用程序返回这个devicetoken。应用程序获得这个devicetoken后,表示APNS已经允许向自己推送消息了,接着还需要将该device token发送给推送服务器(Provider)。到这里应用程序已经成功将自己注册到APNS中了。现在就可以通过Provider产生要推送的消息,然后Provider会将消息发送给APNS服务器,最后APNS服务器会直接向应用程序发送消息。这个过程比较复杂,不过看一下图2的描述就会对这一过程更加了解了。每一个流程描述前面的数字表示发送的时间先后顺序。
  
  二、Windows Phone的推送技术
  微软为Window Phone提供的推送方案与IOS类似,也需要自己准备推送服务器(可以称为Cloud Service)。只是表示设备的ID变成了Uri。在Window Phone中有一个Push Client Service(PCS)。所有需要推送服务的应用程序都需要与Push Client Service通信。下面是Window Phone推送的基本步骤,读者可以与图3对照来看这一过程。
  第1步:应用程序会向Push Client Service请求一个Push Notification URI(①)。
  第2步:如果当前Window Phone设备已经在微软服务器注册了,Push Client Service会从MPNS(Microsoft Push Notification Service ,微软推送通知服务)获取Push Notification URI,并返回给应用程序,表示推送服务可用(②和③)。
  第3步:应用程序需要将Push Notification URI发送给自己的推送服务器(Cloud Service)(④)。
  第4步:如果需要推送消息,Cloud Service会将消息发送到MPNS,然后MPNS会将消息发送给Push Client Service,最后由Push Client Service将消息传送给应用程序(⑤、⑥和③)。
  
21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号