IOS系统推送原理

简介: IOS系统推送原理

IOS推送大致原理如下图

e9f54cd2c5b8aaef63c35a4ff62940ca.jpg



1、Provider:就是为指定IOS设备应用程序提供Push的服务器,(如果IOS设备的应用程序是客户端的话,那么Provider可以理解为服务端[消息的发起者]);


2、APNS:Apple Push Notification Service[苹果消息推送服务器];


3、iPhone:用来接收APNS下发下来的消息;


4、Client App:IOS设备上的应用程序,用来接收iphone传递APNS下发的消息到制定的一个客户端 app[消息的最终响应者];


上图可以分为三个阶段:


阶段一:Provider[服务端]把要发送的消息,目的IOS设备标识打包,发送给APNS;


阶段二:APNS在自身的已注册Push服务的IOS设备列表中,查找有相应标识的IOS设备,并将消息发送到IOS设备;


阶段三:IOS设备把发送的消息传递给对应的应用程序,并且按照设定弹出Push通知。


具体过程,见下图


1、[Client App]注册消息推送;


2、[Client App]跟[APNS Service]要deviceToken, Client App接收deviceToken;


3、[Client App]将deviceToken发送给[Provider]Push服务端程序;


4、当Push服务端程序满足发送消息条件了,[Provider]向[APNS Service]发送消息;


5、[APNS Service]将消息发送给[Client App].


6bc5693d3ecc933fd27af89b4961a42b.jpg


IOS设备上的一些基本概念:


UDID:iOS设备的一个唯一识别码,每台iOS设备都有一个独一无二的编码,这个编码,我们称之为识别码,也叫做UDID( Unique Device Identifier)。


Bundle ID:(Bundle Identifier)是一款iOS应用的唯一标识,应用与Bundle ID之间是唯一对应关系。


请注意:应用新建成功后,Bundle ID将不可修改,如必须修改只能创建一个新的应用,届时App ID、App Key和App Secret也将重新分配,旧版用户将无法收到针对新Bundle ID的推送。


Device Token:设备令牌、用户标识


1.获取devicetoken:


e7d3f65203fd48891c03b03db45e1eff.png

3e88ae89f7e31a5690e20937c4bc2846.png



1>客户端向苹果服务APNS,发送设备的UDID和英语的Bundle Identifier.

2>经苹果服务器加密生成一个deviceToken

3>将当前用户的deviceToken(用户标识),发送给自己应用的服务器

4>自己的服务器,将得到的deviceToken,进行保存


!!!device有可能会发生变化


在一台设备中, device token 是系统级别的,不同 App 获得的 device token 是相同的。假如我的手机安装了 Angry Bird 和 Evernote ,这两个应用获得 device token 一模一样。


device token 并不会因为单个 app 的更新而发生改变。假如我的 iPhone 升级了最新版的愤怒的小鸟,这并不会导致我 device token 的改变。


假如我的 iPhone 从 backup 中恢复数据,device token 不会发生变化。


用户抹除 iPhone 的数据时,意味着要与这台手机撇清关系,比如出售或者送人。此时为了保护隐私,device token 会改变。


2.获取到deviceToken后推送消息给设备


3b5366a877b37c4c9311ae8f0261c564.png

5>需要推送的时候,将消息和deviceToken一起发送给APNS,苹果服务器,再通过deviceToken找到用户,并将消息发给用户

6af6163bb6aae7f9e2e0c0eac34be06b.png



参考文章:


http://www.cnblogs.com/fendou0320/p/6526955.html


http://blog.csdn.net/u012449749/article/details/50542285


目录
相关文章
|
10月前
|
iOS开发
Cisco Catalyst 9800 Wireless Controller, IOS XE Release 17.17.1 ED - 思科无线控制器系统软件
Cisco Catalyst 9800 Wireless Controller, IOS XE Release 17.17.1 ED - 思科无线控制器系统软件
343 9
Cisco Catalyst 9800 Wireless Controller, IOS XE Release 17.17.1 ED - 思科无线控制器系统软件
|
5月前
|
安全 5G 语音技术
Cisco ASR 9000 Router IOS XR Release 7.11.2 MD - ASR 9000 系列聚合服务路由器系统软件
Cisco ASR 9000 Router IOS XR Release 7.11.2 MD - ASR 9000 系列聚合服务路由器系统软件
281 4
Cisco ASR 9000 Router IOS XR Release 7.11.2 MD - ASR 9000 系列聚合服务路由器系统软件
|
云安全 安全 Cloud Native
Cisco Catalyst 8000 Series IOS XE 17.18.1a ED 发布 - 思科边缘平台系列系统软件
Cisco Catalyst 8000 Series IOS XE 17.18.1a ED - 思科边缘平台系列系统软件
184 0
|
运维 监控 安全
Cisco ISR 4000 Series IOS XE 17.18.1a ED 发布 - 思科 4000 系列集成服务路由器 IOS XE 系统软件
Cisco ISR 4000 Series IOS XE 17.18.1a ED - 思科 4000 系列集成服务路由器 IOS XE 系统软件
232 0
|
人工智能 监控 安全
思科 Catalyst 9000 交换产品系列 IOS XE 系统软件 17.18.1 ED
Cisco Catalyst 9000 Series Switches, IOS XE Release 17.18.1 ED
223 0
|
安全 Android开发 数据安全/隐私保护
深入探讨iOS与Android系统安全性对比分析
在移动操作系统领域,iOS和Android无疑是两大巨头。本文从技术角度出发,对这两个系统的架构、安全机制以及用户隐私保护等方面进行了详细的比较分析。通过深入探讨,我们旨在揭示两个系统在安全性方面的差异,并为用户提供一些实用的安全建议。
|
安全 Android开发 数据安全/隐私保护
深入探索Android与iOS系统安全性的对比分析
在当今数字化时代,移动操作系统的安全已成为用户和开发者共同关注的重点。本文旨在通过比较Android与iOS两大主流操作系统在安全性方面的差异,揭示两者在设计理念、权限管理、应用审核机制等方面的不同之处。我们将探讨这些差异如何影响用户的安全体验以及可能带来的风险。
940 21
|
传感器 iOS开发 UED
探索iOS生态系统:从App Store优化到用户体验提升
本文旨在深入探讨iOS生态系统的多个方面,特别是如何通过App Store优化(ASO)和改进用户体验来提升应用的市场表现。不同于常规摘要仅概述文章内容的方式,我们将直接进入主题,首先介绍ASO的重要性及其对开发者的意义;接着分析当前iOS平台上用户行为的变化趋势以及这些变化如何影响应用程序的设计思路;最后提出几点实用建议帮助开发者更好地适应市场环境,增强自身竞争力。
|
安全 Android开发 iOS开发
深入探讨Android与iOS系统的差异及未来发展趋势
本文旨在深入分析Android和iOS两大移动操作系统的核心技术差异、用户体验以及各自的市场表现,进一步探讨它们在未来技术革新中可能的发展方向。通过对比两者的开放性、安全性、生态系统等方面,本文揭示了两大系统在移动设备市场中的竞争态势和潜在变革。
|
存储 安全 算法
深入探索iOS系统安全机制:保护用户隐私的前沿技术
本文旨在探讨苹果公司在其广受欢迎的iOS操作系统中实施的先进安全措施,这些措施如何共同作用以保护用户的隐私和数据安全。我们将深入了解iOS的安全架构,包括其硬件和软件层面的创新,以及苹果如何通过持续的软件更新来应对新兴的安全威胁。此外,我们还将讨论iOS系统中的一些关键安全功能,如Face ID、加密技术和沙箱环境,以及它们如何帮助防止未经授权的访问和数据泄露。