苹果推送机制(APNS)

来源:互联网 发布:华润燃气oa软件 编辑:程序博客网 时间:2024/06/05 00:19
  • 苹果推送机制(APNS)
苹果推送通知服务 (简称APNs) 是实现远程通知功能的主要内容. 它是一项将信息发送至 iOS 设备 (间接至 watchOS ), tvOS, OS X 设备强大且高效的服务. 每个设备都与 APNs 建立了一个可信任的加密的 IP 链接, 并使用这个持续链接来接受通知. 如果一个 app 有新的通知到达而这个 app 没有运行时, 设备会弹出提示框来告诉用户这个 app 有新的消息到达了.
你提供自己的服务器为你的用户生成远程通知. 这个服务器被称为提供者, 为您的用户收集数据并在需要时发送通知. 每个通知, 提供者生成通知的信息和通知的内容并使用 HTTP 2 发送请求, 然后发送到使用 HTTP 2 复用协议的具有持续和安全连接的 APN. 一旦收到您的请求, APNs 负责将您的通知信息交付到您指定设备上的 app 应用中.
  • 远程通知流程
APNs 在你的服务器和用户设备之间将远程通知传递到您的 apps. 图 3-1 显示了每个通知的流程. 当你的服务器要发送一条通知时, 你发送这个通知和一个 device token 到 APNs 服务器. APNs 服务器选择适当的路由将每条通知发送到用户设备, 操作系统把每条通知发送到您指定的 app 上.
苹果推送机制(APNS) - good life - jiashirong的博客
Device token 类似于一个手机号; 它的信息使 APNs 能够定位到安装了您的 app 的手机. APNs 也使用它来验证远程通知的路由 (路径). 您的每个 app 在注册了远程通知服务后都会收到一个 device token.
通知报文是一个 JSON 字典, 里面含有您想要发送到设备上的信息. 通知报文包含有您希望如何通知用户, 如使用提示框, 小角标以及声音. 还可包含自定义的数据.
苹果推送机制(APNS) - good life - jiashirong的博客
在虚拟网络中 APNs 将消息从您的服务器发送到设备的真实流程. APNs 在设备端和服务器端都拥有多点链接; 在服务器端, 叫做网关. 通常有很多服务器, 其中每个服务器都会通过网关与 APNs 建立一个或多个持续和安全的链接. 然后这些服务器通过 APNs 对安装了它们 app 的设备发送远程通知.
  • 服务质量

APNs 含有一个默认的质量服务 (QoS) 组件来执行存储和转发的功能. 当 APNs 尝试为一个暂未连接网络的设备发送一条通知时, 这条通知会在有限的时间内保存起来, 在设备联网时发送到设备. 对于每个 app 只能保存一条最近的通知. 当多条通知发送到未联网的设备时, 最新的通知会使之前的通知失效. 只保留最新通知的特性被称之为聚合性通知.
如果设备离线时间过长, 被储存的所有通知都将失效.

  • 安全体系

为保证安全通信, APNs 在服务器和设备的接入点中规定了俩种不同级别的可信方式, 可信链接和可信 token.

可信连接表示 APNs 必须与经过 Apple 授权可以传递通知的服务器连接. APNs 也使用可信链接确保设备的合法性. APNs 会自动处理与设备的可信链接, 但你必须使用指定步骤确保 APNs 与服务器之间使用了可信链接.

Token 信任确保通知只会从合法的开始发送到合法的结束点. Token 信任涉及 device token 的使用, device token 标示着特定设备上的特定应用. 每个 app 在向 APNs 注册时都会收到一个 device token, 并将它发送至服务器. 之后, 服务器每次向 APNs 发送推送时必须包含 device token. 确保指定的通知信息发送到指定的应用/设备中.

注: Device token 不是设备的唯一标识. Device token 会在系统更新后改变, 因此, 每次系统更新后 apps 应该再次发送 device token 至服务器. 译者注, 在 app 内嵌入用户信息追溯功能, 当操作系统更新后, 发送新的 device token 至服务器;
APNs 服务器还有一个必要的 CA 证书, 和用来验证服务器与设备的链接有效的密钥(公钥和私钥).

  • 服务器-to-APNs信任连接

每个服务器必须具有唯一的远程推送证书和私有密钥, 用于验证服务器与 APNs 之间的链接. 远程推送证书 (由 Apple 公司提供) 其中标识服务器提供的主题, (主题是您 app 的 bundle ID.)

服务器与APNs通过TLS点对点认证建立信任连接,TLS连接启动后,你会从APNs中得到服务证书并且这个证书在你的终端已经被认证,然后你将已经被认证的证书发送到APNs。这些步骤被完成后,安全的TLS就建立好了。APNs现在接受了这个被服务器合法创建的连接。

图示:服务器与APNs建立一个信任连接的

苹果推送机制(APNS) - good life - jiashirong的博客
HTTP/2提供程序连接是有效的交付到一个特定的应用程序,boundleID中制定的证书。
官方解释地址
 
1 0
原创粉丝点击