大多数浏览器和
Developer App 均支持流媒体播放。
-
Apple Push Notification Service 的新功能
首先回顾基于 HTTP/2 的提供程序 API,然后了解一项重要的新功能:基于令牌的身份验证。了解如何利用身份验证令牌连接到 APN,以通过 HTTP/2 API 发送推送信息,从而减少与维护有效证书相关的开销。
资源
-
下载
Apple Push Notification Service的 新功能 欢迎来到724号会议 关于Apple Push Notification Service的 新功能 我是Mayur Mahajan 我从事于Apple Push Notification Service 即APNS 我迫不及待跟你们分享 APNS中即将上线的功能
首先让我们回顾一些 过去已经增强的功能 这些功能是在去年发布的
首先我们提供了一种新的服务端协议 基于HTTP/2来进行 持续的推送 HTTP/2协议传输采用二进制编码 支持在一个连接中使用多种数据流 并且十分快速 这种新的协议让推送一则消息 变得很容易
这种新的协议支持即时的反馈 从而可以立即获知设备的token 是否处于激活状态
这种协议还允许发送 更多字节的有效载荷 最多可以发送4000字节 你可以利用这一点 来创建更加丰富的应用
此外 我们还简化了证书的处理 所以你们现在只需要维护更少的证书 这些证书被用来与APNS进行连接
我们获得了很多积极的反馈 这些反馈来自开发者社区
我们现在每秒推送着数十万条通知 归功于使用了这种新的协议 如果你还没有试用过新的推送服务 那么你真的应该去尝试一下了
让我们重新来看一下那些关键的步骤 关于发送一则Push Notification 右下角是客户端应用 右上角是供应商 它是一个服务端组件用来连接APNS 并且发送 Push Notification
目前在你开始发送通知之前 你应该注册 Push Notification 通过你的开发者帐号来完成
这样你的应用就可以 向操作系统来注册推送服务 当它在设备上运行的时候 左下角
设备会向APNS请求一个token 这个token用来代表这个应用 设备会将该token传递给你的应用
这个token具有唯一的标识性 代表了你的应用运行在了相应的设备上
你的应用应该将 该token转发给供应商
现在供应商服务 就可通过客户端的证书连接到APNS 然后发送一个标准的 HTTP/2的POST请求 从而向那个token 发送一次推送
HTTP/2供应商接口将 提供一个即时回应 来表示是否能成功发送 同时 APNS收到 并且会验证这个推送请求是否有效
如果发生错误 就会报告这个token无效 APNS会返回 一个状态码为400的错误信息 或者“无效请求” 以及相关的错误指示 举例来说 设备token无效
新的供应商协议会提供即时的反馈 如果设备token被移除了 那么你会得到一个HTTP/2的回应 其状态码410或代表移除的文字描述
并且该回应中 还提供了一个时间戳来标识 APNS何时知道 该设备token被移除了
我们还简化了证书的相关处理 作为新的供应商协议的一部分
你现在只需要规定一次证书 来覆盖你的应用 complication以及Voip Push
这个证书既可以在开发环境 又可以在生产环境中使用
这样可以减少很多麻烦 在管理 新建 以及撤回证书的过程中 开发者可以避免一些过去出现的麻烦
现在 让我们来听一下 像你们开发者的反馈 并且我们已经认识到了 简化工作流程的重要性 那些在发送推送通知中涉及到的流程
我们意识到管理证书实在是太复杂了 对于很多应用来说
所以今天我们非常激动的通知 一个新的 简洁的认证机制会引入到APNS中
token认证机制介绍 在APNS中的应用
Token认证机制通过 用供应商的token 在发送通知的过程中 替代了客户端的证书
这种认证token是用来 简化服务端与APNS之间的连接方式
此外 这些token非常容易 通过程序生成 所以再也不用担心 需要去处理那些证书过期的问题了
这一切能实现依赖于 JSON Web token 作为一种生成认证证书的机制
有很有多种程序语言 选项的库可以用 来生成这些token
现在 在我们讨论一些细节之前 关于token认证机制的细节 让我们首先了解 证书认证机制是如何工作的
你们可以选择参加
通过开发者账号获得一个客户端证书
当使用同一种认证连接APNS的时候 APNS会提供一个服务端的证书 用来让你信任和效验
就像握手一样 你的供应商会为客户端证书签名 从而APNS会进行效验并且建立证书 此时一个彼此信任的连接就建立了 在APNS与供应商之间
任何通过这个连接发送的 推送都会附加 一个客户端证书中的应用标示
当使用token认证机制的时候 你应通过账户选择一个token 的签名键值
然后你的供应商建立一个PLS连接 并不需要包含一个客户端证书 但是 在通过这个连接发送通知之前 供应商需要创建一个认证的token 包含你的团队ID 然后为它签名
现在就可以通过这个连接发送通知了
每一个通知消息 在签名后都需要 包含这个认证token
这个请求还需要包含应用相关的信息
APNS首先验证 来自服务端的token 然后再处理请求
如果请求被成功的处理了 APNS就会返回一个 包含成功信息的回应
如果请求中没有token信息 或者token信息无效 返回的回应会包含一个错误指示信息
作为一个提醒类型的服务 APNS不会在有错误发生时关闭连接
现在让我们来看一下 如何生成一个供应商token
你首先需要配置一个签名键值 在证书、身份 配置下设置(开发者账户中)
这样产生了一个公共-私有的键值面板 然后这个私有的键就可以使用了 用来当作密码为token数据签名
Apple会使用对应的公匙 来对token进行效验
下面让我们来关注下 如何生成token
上面是一个例子 用来说明 一个JSON Web Token 在参与请求中是什么样子的
让我们看一下 该JSON Web token结构
你可以看到它有三个部分 每一个部分都是被 base-64编码过的URL的形式 一段时期内这种形式都不会改变
下面被解码的部分 代表着该Web token
第一个部分是header 它包括了一些属性 用来描述了token签名使用的算法 在我们的例子中 使用的是ES256
它还描述了键的标识符 这个键是用来给token签名的
claim部分包含了用于效验的数据 那就是你的开发者的团队ID 可以通过你的开发者账户获得
claim部分中的下一个属性 是一个初始化的时间戳 用来表示时间点
token的最后一个部分一个签名 通过对一些数据使用了加密算法后 再进行了base-64的编码 这些数据来源于 header以及claim部分 这样避免了任何未授权的干预 来自token
这里是一个HTTP/2创建的 一个使用token认证的请求
就像你看到的那样 这个请求包括了一个header区 以及一个数据区 header区由很多 APNS相关的变量组成 现在你可以看到header区了 包含了一个认证header 在“bearer”值 后面是带签名的供应商token
如果这个带token认证的 请求是有效的 那么回应就会返回一个 200的状态码或者“OK”的信息
这里可以看到这种回应的结构 如果供应商token是无效的
会返回403的状态码 或者“禁用”的信息
现在APNS会要求 周期性的产生新的token
如果token存在的时间太长 回应同样会 返回403或者“禁用”的信息 并且会指示出token过期了
APNS会要求token的创建时间 必须在一个小时以内
但并不是每一个连接都需要 产生一个新的token 实际上处于性能的考虑 我们建议 在token有效的时候 就一直使用它
所以这里还有一些更多的 关于token认证的细节
就如之前提到的供应商token 需要周期性的被创建 但是 需要注意 键值“签名”不会失效
如果你觉得“签名”键值 需要变化 那么可以在开发者账户中撤销它 然后部署一个新的键
作为一个提醒类型的服务 APNS会长久支持证书认证方式
并且也会长久支持token认证方式 并且这种token认证方式会 在今年内晚些时候出现
本次会议的更多的信息请访问页面 developer.apple.com/wwdc16/724
下面是一些关于 Notification的相关会议 你可能会感兴趣:
主题为Introduction to Notifications的会议 在周三的上午9点 于Pacific Heights召开 接下来 主题为Advanced Notifications的会议 会在周三的上午10点 于Pacific Heights召开 我们希望到时候还再能看到你们 谢谢大家
-
-
正在查找特定内容?在上方输入一个主题,就能直接跳转到相应的精彩内容。
提交你查询的内容时出现错误。请检查互联网连接,然后再试一次。