现在的位置: 首页 > 综合 > 正文

APNS提供了两项基本的服务:消息推送和反馈服务

2018年05月12日 ⁄ 综合 ⁄ 共 1587字 ⁄ 字号 评论关闭

推送通知,也被叫做远程通知,是在iOS 3.0以后被引入的功能。是当程序没有启动或不在前台运行时,告诉用户有新消息的一种途径,是从外部服务器发送到应用程序上的。一般说来,当要显示消息或下载数据的时候,通知是由远程服务器(程序的提供者)发送,然后通过苹果的推送通知服务(Apple Push Notification Service,简称apns)推送到设备的程序上。

推送的新消息可能是一条信息、一项即将到期的日程或是一份远程服务器上的新数据。在系统上展现的时候,可以显示警告信息或在程序icon上显示数字,同时,也可以播放警告音。一旦用户注意到程序有新的信息、时间或是数据,他们可以运行程序并访问新的内容。也可以选择忽略通知,这时程序将不会被激活。

iPhone, iPad和iPod touch上同一时刻只有一个app在前台运行。大多数程序在后台运行的时候,可以对某些用户感兴趣的内容做出回应(定时、或数据等)。推送通知能让程序在这些事件发生的时候通知用户。

作为提供者为程序开发和部署推送通知,必须通过iOS Developer Program Portal获得SSL证书。每个证书限用于一个程序,使用程序的bundle ID作为标识。证书有两种用途的:一种是针对sandbox(用于开发和测试),另外一种针对发布产品。这两种运行环境拥有为各自指定的IP地址并且需要不同的证书。还必须为两种不同的环境获取各自的provisioning profiles。

APNS提供了两项基本的服务:消息推送和反馈服务。

消息推送:使用流式TCP套接字将推送通知作为二进制数据发送给APNs。消息推送有分别针对开发和测试用的sandbox、发布产品的两个接口,每个都有各自的地址和端口。不管用哪个接口,都需要通过TLS或SSL,使用SSL证书来建立一个安全的信道。提供者编制通知信息,然后通过这个信道将其发送给APNs。 注:sandbox:   gateway.sandbox.push.apple.com:219 产品接口:gateway.push.apple.com:2195

反馈服务:可以得到针对某个程序的发送失败记录。提供者应该使用反馈服务周期性检查哪些设备一直收不到通知,不需要重复发送通知到这些设备,降低推送服务器的负担。 注:sandbox:feedback.push.apple.com:2196 产品接口:feedback.sandbox.push.apple.com:2196


反馈服务

如果供应商试图发送推送通知到一个应用程序,但应用程序已经不存在该设备中了,设备会报告一个信息给苹果推送通知服务器。这种情况经常发生,当用户卸载应用程序后。如果设备报告了尝试传递应用程序推送通知时的失败,APNS需要一些方法来通知供应商,以便它能够避免再次将通知发送到该设备。这样做可以降低不必要的消息开销和提高系统的整体性能。

为此苹果的推送通知服务器包括一个反馈服务,APNS不断更新每个应用程序的失效的设备令牌列表。该设备是识别设备令牌是否由二进制格式的编码的。供应商应定期查询反馈服务来获取他们的应用程序的设备令牌,以鉴别是否还存在(名单)。然后,验证应用程序是不是最近(被识别的设备)重新注册了,否者供应商应停止向这些设备发送通知。

反馈服务可以通过一个二进制接口来访问,和发送推送通知相类似。您可以通过feedback.push.apple.com端口2196访问反馈服务的结果您可以通过feedback.sandbox.push.apple.com端口2196访问沙盒的反馈服务的结果。至于二进制接口与推送通知一样,您必须使用TLS(或SSL)来建立一个安全的通信通道。这些连接所需的SSL证书是同一个是发送通知提供的。要建立一个值得信赖可以供应商的身份,你应该与APNS使用点对点的连接验证时提交此证书

抱歉!评论已关闭.