文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

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

2022-06-06 12:52

关注

  推送并不是什么新技术,这种技术在互联网时代已经很流行了。只是随着进入移动互联网时代,推送技术显得更加重要。因为在智能手机中,推送从某种程度上,可以取代使用多年的短信,而且与短信相比,还可以向用户展示更多的信息(如图像、表格、声音等)。   推送技术的实现通常会使用服务端向客户端推送消息的方式。也是说客户端通过用户名、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将消息传送给应用程序(⑤、⑥和③)。


阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-移动开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯