iOS 实现消息推送及原理分析

原创 2017年01月03日 16:19:42

摘抄:脚本之家

一、消息推送原理

在实现消息推送之前先提及几个于推送相关概念,如下图:

这里写图片描述

1、简介

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

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

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

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

2、阶段

上图可以分为三个阶段:

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

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

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

3、过程

  • (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]。

这里写图片描述

二、消息推送实现

1、生成*.certSigningRequest文件

步骤如下:
[MacBook-应用程序-实用工具-钥匙串访问-证书助手-从证书机构求证书-证书信息(用户电子邮箱地址{填写您的邮箱,如:your@email.com},常用名称{任意,如:PushDemo},请求是:{单选,选择‘存储到磁盘’})-继续-保存],这时会在您指定的地方生成你指定的文件,默认为CertificateSigningRequest.certSigningRequest文件,这里命名为:PushDemo.certSigningRequest.在此*.certSigningRequest已经生成,具体操作步骤如图所示。

这里写图片描述
这里写图片描述

如果生成成功,则会在[钥匙串访问|登录|密钥]栏目中列出与*.certSigningRequest关联的密钥,这里是PushDemo,如图所示:
这里写图片描述

2、新建一个App ID(在苹果开发者账号中配置)

(1)、 登录iOS Dev Center,登录成功后,点击(Certificates,Identifiers&Profiles对应链接),如图所示:
这里写图片描述
(2)、创建APP IDs
这里写图片描述
填写信息
这里写图片描述
选中Push Notifications

这里写图片描述

点击创建,生成APP IDs
这里写图片描述

(3)、绑定推送证书

编译上边创建的APP IDs
这里写图片描述
Development 测试推送
Production 生产推送
这里写图片描述
选中上面创建的certSigningRequest文件;
这里写图片描述
点击下载。

版权声明:本文为博主原创文章,未经博主允许不得转载。

Unity IOS Android 消息推送原理分析

著作权归作者所有。 商业转载请联系作者获得授权,非商业转载请注明出处。 作者:李琰 链接:http://www.zhihu.com/question/20667886/answer/805399...
  • he_wen_jian
  • he_wen_jian
  • 2016年02月01日 23:47
  • 1872

IOS开发之实现App消息推送(最新)

今天就由本菜鸟给大家做一个简单的IOSApp消息推送教程吧!一切从0开始,包括XCode6, IOS8, 以及苹果开发者中心最新如何注册应用,申请证书以及下载配置概要文件,相信很多刚开始接触ios的人...
  • shenjie12345678
  • shenjie12345678
  • 2014年11月19日 21:13
  • 201394

iOS-友盟消息推送的快速实现

在需求的要求下,今天学习了友盟、极光、个推以及百度推送。这些推送都是恨简单的,在各个api的帮助下顺利实现了推送功能。 首先,友盟这个的sdk用的挺多了,也方便,api文档也简单、易懂,因此以它为首个...
  • lct710992308
  • lct710992308
  • 2016年03月22日 16:32
  • 604

Worktile 中百万级实时消息推送服务的实现

Worktile 中百万级实时消息推送服务的实现 转自:http://www.360doc.com/content/15/0907/19/1073512_497529854.shtml 这...
  • zhangqipu000
  • zhangqipu000
  • 2016年02月01日 10:32
  • 1231

iOS消息推送(Java实现)

首先来了解一下苹果的消息推送APNS(英文全称:Apple Push Notification service) 先来看两张苹果对于推送的两张解释图: 大概的意思就是,提供商把消息推送至苹...
  • kerryzb
  • kerryzb
  • 2016年05月26日 14:29
  • 7918

HashMap原理分析及JDK1.8性能优化

HashMap是java中一个重要概念,其源码部分研究起来也非常有意思,这里做下总结。本文中1-4的原文链接是: http://blog.csdn.net/vking_wang/article/det...
  • omelon1
  • omelon1
  • 2018年01月23日 17:33
  • 346

Elasticsearch实现原理分析-2

分布式系统 一致性 并发控制 选主机制 数据分片机制 translog(Write Ahead Log - WAL) Lucene segments...
  • zg_hover
  • zg_hover
  • 2017年08月15日 20:43
  • 567

IOS实现本地消息推送

今天查阅资料,运行演示代码,想实现本地消息推送,但是一直很难实现。后来发现是IOS8需要有申明和注册。 在AppDelegate中,实现如下函数: - (BOOL)application:(UIApp...
  • tiberx
  • tiberx
  • 2014年12月24日 16:07
  • 260

ios 消息推送 .net 实现

这里我就不说iOS 的消息推送机制了,网上太多了;我要说说,我在实现iOS消息推送过程中,在网上发现的一些资料,最开始我找到了一个叫 APNS-Sharp  的开源第三方库,实现消息推送,顺藤摸瓜,...
  • yabusai
  • yabusai
  • 2013年09月05日 14:09
  • 464

PHP实现IOS消息推送

原文地址:http://zxs19861202.iteye.com/blog/1532460 IOS推送消息是许多IOS应用都具备的功能,最近也在研究这个功能,参考了很多资料终于搞定了,下面就...
  • luomao2012
  • luomao2012
  • 2017年09月08日 20:07
  • 441
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:iOS 实现消息推送及原理分析
举报原因:
原因补充:

(最多只允许输入30个字)