IOS系统推送原理
IOS推送大致原理如下图

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].

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:


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后推送消息给设备

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

参考文章:
http://www.cnblogs.com/fendou0320/p/6526955.html
http://blog.csdn.net/u012449749/article/details/50542285
IOS系统推送原理的更多相关文章
- iOS远程推送原理及实现过程
➠更多技术干货请戳:听云博客 推送通知,是现在的应用必不可少的功能.那么在 iOS 中,我们是如何实现远程推送的呢?iOS 的远程推送原理又是什么呢?在做 iOS 远程推送时,我们会遇到各种各样的问题 ...
- IOS - 消息推送原理和实现
一.消息推送原理: 在实现消息推送之前先提及几个于推送相关概念,如下图1-1: 1.Provider:就是为指定IOS设备应用程序提供Push的服务器,(如果IOS设备的应用程序是客户端的话,那么Pr ...
- iOS 消息推送原理及实现Demo
一.消息推送原理: 在实现消息推送之前先提及几个于推送相关概念,如下图1-1: 1.Provider:就是为指定IOS设备应用程序提供Push的服务器,(如果IOS设备的应用程序是客户端的话,那么Pr ...
- [iOS]iPhone推送原理
推送原理,先上图 说一下原理吧, 由App向iOS设备发送一个注册通知 iOS向APNs远程推送服务器发送App的Bundle Id和设备的UDID APNs根据设备的UDID和App的Bundle ...
- iOS 消息推送原理
一.消息推送原理: 在实现消息推送之前先提及几个于推送相关概念,如下图: 1. Provider:就是为指定IOS设备应用程序提供Push的服务器,(如果IOS设备的应用程序是客户端的话,那么Prov ...
- iOS消息推送原理和实现总结
一.消息推送原理: 在实现消息推送之前先提及几个于推送相关概念,如下图:1. Provider:就是为指定IOS设备应用程序提供Push的服务器,(如果IOS设备的应用程序是客户端的话,那么Provi ...
- iOS 远程推送原理及实现
关于iOS 实现消息推送的原理: 1.provide[server]把要发送的消息,目的IOS设备标识打包.发送给APNS 2.APNS在自身已注冊Push服务的IOS设备列表中.查找有对应标识的IO ...
- iOS 消息推送原理及实现总结
在实现消息推送之前先提及几个于推送相关概念,如下图:1. Provider:就是为指定IOS设备应用程序提供Push的服务器,(如果IOS设备的应用程序是客户端的话,那么Provider可以理解为服务 ...
- iOS 消息推送原理及实现总结 分类: ios技术 2015-03-01 09:22 70人阅读 评论(0) 收藏
在实现消息推送之前先提及几个于推送相关概念,如下图: 1. Provider:就是为指定IOS设备应用程序提供Push的服务器,(如果IOS设备的应用程序是客户端的话,那么Provider可以理解为服 ...
随机推荐
- Yii2.0实现微信公众号后台开发
接入微信 Yii2后台配置 1.在app/config/params.php中配置token参数 return [ //微信接入 'wechat' =>[ 'token' => 'your ...
- UIView 坐标转换
例子1 Controller的view中有一个tableView,tableView的cell上有一个button,现在需要将button的frame转为在Controller的view中的frame ...
- __name__
__name__ 是 python 的一个内置变量,它的值等于 '__main__' ,如下: [root@localhost ~]$ cat talk.py #!/usr/bin/env pytho ...
- 四个dos命令检查你的电脑是否中木马
一些基本的命令往往可以在保护网络安全上起到很大的作用,下面几条命令的作用就非常突出. 命令是再CMD中输入,不是运行框中 一.检测网络连接 如果你怀疑自己的计算机上被别人安装了木马,或者是中了病毒,但 ...
- ajax的轮询和长轮询
概念: 轮询(polling):客户端按规定时间定时像服务端发送ajax请求,服务器接到请求后马上返回响应信息并关闭连接. 概念总是枯燥的,只有代码方能解心头之快 前段代码:index.html: & ...
- JavaScript匿名函数的使用
JavaScript匿名函数的使用: http://www.cnblogs.com/skykang/archive/2010/12/03/1895274.html 一.什么是匿名函数? 在Javas ...
- 使用Mac App Store更新、下载软件时出现未知错误的解决方法
很多果迷在使用 Mac App Store 更新/下载软件时,可能都曾被”未知错误”困扰过,怎么解决也不行.然而,过一段时间不知道做了什么又自己好了.今天我们提供两个解决这个问题的方法,下次遇到这个问 ...
- 离线微博工具Open Live Writer(Windows Live Writer)安装过程及server error 500错误解决
必备条件: .net framework 3.5框架(大概是要求3.5或以上,不确定,好像没有人遇到和这个相关的问题) 2017年7月27日最新官方版0.6.2英文离线客户端网盘下载(官网的安装包无法 ...
- City of stars
City of stars 英:[ˈsɪtɪ] [ɒv; (ə)v] [stɑːz] 美:[ˈsɪti] [əv] [stɑːz] Are you shining just for me? 英:[ɑː ...
- python学习笔记(四)— 函数
一.函数是什么? 函数一词来源于数学,但编程中的「函数」概念,与数学中的函数是有很大不同的,编程中的函数在英文中也有很多不同的叫法.在BASIC中叫做subroutine(子过程或子程序),在Pasc ...