APNS
APNs(英文全称:Apple Push Notification service),中文翻译为:苹果推送通知服务。该技术由苹果公司提供的APNs服务。(苹果的服务器)
通知是由两个主要部分组成的数据:设备令牌和有效载荷的短消息。
工作原理:
//首先,APNs会对用户进行物理连接认证,和设备令牌认证(简言之就是苹果的服务器检查设备里的证书以确定其为苹果设备)
//然后,将服务器的信息接收并且保存在APNs当中,APNs从其中注册的列表中查找该IOS设备
// (设备可以为iPhone、iPad、iPod Touch,版本是iOS3.0及以上)并将信息发送到该设备;
//最后,设备接收到数据信息给相应的APP,并按照设定弹出Push信息。
过程:
//第一阶段:应用程序把要发送的消息、目的iPhone的标识打包,发给APNS。
//第二阶段:APNS在自身的已注册Push服务的iPhone列表中,查找有相应标识的iPhone,并把消息发送到iPhone。
//第三阶段:iPhone把发来的消息传递给相应的应用程序,并且按照设定弹出Push通知。
//1、首先是应用程序注册消息推送。
//发起请求,系统记录好了那个应用程序注册了推送服务,为后面收到推送信息推送信息到那个应用做好准备
//2、 IOS跟APNS Server要deviceToken。应用程序接受deviceToken。
//IOS系统向APNS Server(服务器)取得一个deviceToken,APNS Server会记录下这个设备与这个deviceToken关联,
//(一个设备可能对应多个deviceToken(多个应用(APP)))那后面信息推送给谁做准备,不同应用申请的deviceToken可
//能是不一样的,这样就可以为后期区别不同应用做好准备了
//3、应用程序将deviceToken发送给PUSH服务端程序。
//应用程序得到deviceToken,并发送给业务服务器(决定推送什么信息的服务器),业务服务器记录下这个
//deviceToken,为后面事件发生向那些指定的设备推送信息
//4、 服务端程序向APNS服务发送消息。
//业务服务器发生某些事件时,把推送的信息和deviceToken一起发送到APNS Server,
//5、APNS服务将消息发送给iPhone应用程序
//APNS Server收到业务服务器发送的信息,从记录好的deviceToken与设备对应关系中找到设备,APNS Server并把推送到设备,
//设备接收到推送的信息,IOS系统从中得到那些应用软件(APP)注册了推送服务,然后将信息发送给对应的应用软件(APP),
//应用软件(APP)从而向系统申请弹出信息框,信息就可以在设备上看到了
信息组成:
//提供端需要推送的数据有两个部分组成:
//Device Token
//Payload
//Token 很容易理解,就是验证双份身份时需要携带的认证讯息;
//而Payload则是需要推送的主要信息了,它又包括:
//展示给用户的信息
//给 App 展示的 icon 徽标 ( 俗称小红点 ) 数量信息
//在设备端发出的声音
//当然其中只有 1 是必需的。
特点:
//推荐使用APNs服务,稳定,方便,美中不足是没有推送到达的回执和统计,不方便产品运营。如对此方面有需求可以使用 个推等第三方推送服务解决
链路:
//信息提供者(provider)-->APNS-->IPohne(设备)-->应用程序(APP)
//Provider是指某个iPhone软件的Push服务器
//APNS是Apple Push Notification Service的缩写,是苹果的服务器
无论是iPhone客户端和APNS,还是Provider和APNS,都需要通过证书进行连接
用户设备联网后,会保持跟苹果 APNs 服务器的连接,所有推送都通过这个连接发送到用户设备,系统再根据设置弹出提醒(是长连接)
GCM(谷歌云推送)
实现原理与APNS差不多
服务端和GCM的通信方式有两种:
1.Http协议
2.Xmpp协议
registerId:客户端向GCM申请的设备关系码
1. 注册用户,得到Project Number和APP key,Project Number就是我们在后面编程时候所要用到的SENDER_ID 。
//==========================================================================================
1.Sender ID //项目ID,向GCM那个项目进行请求Registration Token(APP)和向其发送信息(应用服务器)
2.API Key //访问GCM要用到的一个密码
3.Registration Token //APP向GCM申请得到的一个与设备绑定的ID
//==========================================================================================
工作流程:
//1.创建一个谷歌API项目,选择Other>Create一个新的项目,Google会自动生成一个project Id. 这是你的项目ID,
// 请注意这个Id 项目ID:382396212935 下面很多地方用到了.
// 1.1获取一个Server API密钥
//2.APP通过向系统调用接口,向GCM的project Id请求得到Registration Token,系统登记好这个Registration Token与APP的关系,
// 同时GCM,会记录好这个Registration Token与那个设备(可能是socket)进行关联的
//3.APP向应用服务器提交得到的Registration Token与用户ID(用于应用服务器进行关系绑定)
//4.应用服务器保存Registration Token与用户ID的关联
//5.当要进行消息推送时,将包含有Sender ID、API Key、Registration Token、消息内容的请求发送到GCM
//6.GCM接收到请求后,从Registration Token与那个设备(可能是socket)进行关联的表中得到设备(可能是socket),并通过这个
// (可能是socket)长连接发送相应的消息。
//7.APP系统就可以接收到这个消息,从系统中(Registration Token与APP的关系表)就可以知道这个消息是与那个APP进行关联的,
// 系统发送相应的消息到APP,APP接收到消息
分享到:
相关推荐
Yii 2 Apns Gcm Yii 2将Apns和Gcm与常见方法(如send()和sendMulti() 安装 安装此扩展的首选方法是通过 。 无论运行 php composer.phar require --prefer-dist bryglen/yii2-apns-gcm "1.0.5" 或添加 "bryglen/yii...
spring-boot-sample-batch-with-apns-gcm 这是在 spring-boot-sample-batch 之上的 APNS 和 GCM 示例应用程序 背景 在我的公司,我有机会制作一个内部“推送服务器”,它是 APNS 和 GCM 的网关服务器。 所以我决定...
apn-gcm-docker ============== 这个 repo 包含用于和的 Dockerfiles$ docker pull techgaun/apns$ docker run -d -p 7777:7777 -t techgaun/apns$ docker pull techgaun/gcm$ docker run --rm -t techgaun/gcm # ...
"pushcli" 是一个命令行接口(CLI)工具,专门设计用于测试 Apple Push Notification Service (APNS) 和 Google Cloud Messaging (GCM) 的通知服务。这个工具简化了发送推送通知的过程,使得开发者能够快速验证他们...
烧瓶推杆 Flask扩展,用于在APNS(iOS)和GCM(Android)上推送通知。 ***警告:项目已弃用,不再保留***链接项目: : 说明文件: : PyPi: ://pypi.python.org/pypi/flask-pushjack/ TravisCI: ://travis-ci....
千斤顶 推送有关APNS(iOS)和GCM(Android)的通知。 ***警告:项目已弃用,不再保留***链接项目: : 说明文件: : PyPi: ://pypi.python.org/pypi/pushjack/ TravisCI: ://travis-ci.org/dgilland/pushjack...
不过,我们可以理解为讨论的是如何在Android应用中实现类似APNS的远程通知功能,即使用GCM(Google Cloud Messaging)或其更新版本FCM(Firebase Cloud Messaging)。下面将详细介绍Android应用中如何利用FCM实现...
为了推送iOS设备的通知,我们需要配置APNS或使用FCM,因为APNS是苹果公司提供的推送服务,而FCM(前身为Google Cloud Messaging, GCM)则由谷歌提供,支持Android和iOS设备。 Firebase Cloud Messaging (FCM) 是一...
它支持Google的GCM(Google Cloud Messaging)和Apple的APNS(Apple Push Notification service),这两个服务分别用于向Android和iOS设备发送通知。 **描述解析:** 描述简单明了,重申了该库的主要功能,即通过...
推箱子Pushbox 是苹果 apns、google gcm、sms 等的通用通知推送容器。 Apns 适配器: : 安装更新您的composer.json文件以将这些包作为依赖项包含在内。 " tinpont/pushbox " : " dev-master "自定义您的适配器在任何...
与 APNS 的单个 SSL 连接保持活动状态,使 Cloudpokes 适用于中等负载的应用程序。 Cloudpokes 提供了一个平台抽象的推送 API,使从同一后端为 iOS 和 Android 客户端提供服务变得简单和容易。 根据客户端类型构建...
通知网 本项目是为小型企业提供实时通知服务的系统。 由 Node.JS 编写 安装 rethinkdb Ubuntu 14.04 source /etc/lsb-release && echo "deb trusty main" | 须藤三通/etc/apt/sources.list.d/... APNS GCM Pubnub
节点推送通知 一个Node.js模块,用于与Apple Push Notification,Google Cloud Messaging,Windows Push Notification... 即,如果您的应用仅适用于android或ios,则应分别仅包含gcm或apn 。 import PushNotifications
- Uniqush是一个库,它为开发者提供了更简单的API来处理APNs和其他推送服务,如Google Cloud Messaging(GCM,现在称为Firebase Cloud Messaging,FCM)。 关于Go语言: - Go语言由Google开发,旨在提高开发效率和...
项目中的`appleboy/gorush/core`目录包含了主要的业务逻辑,如`apns.go`和`gcm.go`分别处理APNs和GCM的推送。开发者可以根据自己的需求,对这些模块进行定制,例如添加新的推送协议支持,或者优化特定平台的通知格式...
`pushex` 库允许开发者方便地集成 Apple Push Notification Service (APNS) 和 Google Cloud Messaging (GCM),这两个服务分别是苹果和谷歌为移动设备提供实时通知的官方机制。 1. **Apple Push Notification ...
JavaPNS(Java Push Notification Service)是一个开源的Java库,专为开发者设计,用于与Apple Push Notification service (APNs) 和 Google Cloud Messaging (GCM,现已被Firebase Cloud Messaging, FCM所取代) ...
Laravel Push 该软件包为iOS和Android提供推送服务。 它实现了iOS APS 2.0(HTTP2)API,该API需要启用HTTP2的cURL版本。 与其他程序包相反,此程序包可以提供有关失败的推送令牌的反馈。安装要安装软件包,请运行...
该项目使用来自 GCM 和 APNS 的实时 Titanium 模块和推送通知。 实时 + Android 推送通知指南 创建一个 Google 项目,更多信息请。 设置要在通知管理器中显示的通知标题: ortc.setNotificationTitle('[App name...
开源项目-Imgur-incus.zip,Incus – Middleware for sending messages via websockets, long polling and APNS/GCM push notifications