iPhone的Push(推送通知)功能原理浅析
Provider是指某个iPhone软件的Push服务器。 APNS是Apple Push Notification Service(Apple Push服务器)的缩写,下文统一使用该缩写。因此,整个过程可以分为三个阶段,下面用大家常用的聊天客户端BeejiveIM来说明。(BeejiveIM是一款支持多账户登录的支持Push的iPhone聊天客户端,支持MSN、Google Talk等)此时Provider为BeejiveIM服务器,我们在BeejiveIM上登陆MSN,其实软件是先把登录信息发送到BeejiveIM服务器,再通过其服务器来登陆MSN。因此,当我关闭了BeejiveIM,BeejiveIM服务器会继续为我登陆MSN,此时如果有人对我的MSN账户发送了消息,那么就会触发Push。此时:第一阶段:BeejiveIM服务器把要发送的消息、目的iPhone的标识打包,发给APNS。第二阶段:APNS在自身的已注册Push服务的iPhone列表中,查找有相应标识的iPhone,并把消息发到iPhone。 iPhone的Push(推送通知)功能是iOS设备上的一项重要特性,它允许应用程序在后台向用户发送提醒,即使应用并未在运行。这一功能依赖于Apple Push Notification Service (APNS) ——苹果提供的推送服务。下面是Push通知的工作原理: 1. **Push通知的三个阶段**: - **第一阶段**:提供商(如BeejiveIM服务器)在接收到新消息后,将消息内容和接收者的iPhone设备标识(设备令牌)打包,然后发送给APNS。 - **第二阶段**:APNS在它的数据库中查找已注册的设备,根据设备令牌找到对应的iPhone,并通过安全的TLS连接将消息推送给设备。 - **第三阶段**:iPhone接收消息后,将其转发给相应应用程序,并按照用户设置显示推送通知。 2. **Push认证过程**: - **物理连接认证**:iPhone与APNS之间建立TLS加密连接,确保通信的安全性。每个iPhone都有唯一的设备证书,APNS有服务器证书,双方会验证对方证书的有效性,保持连接状态,期间通过握手协议每隔15分钟进行一次保活检查。 - **基于token的认证**:设备令牌是通过APNS使用设备证书和令牌密钥加密生成的,这个令牌在每次TLS连接时更新,并发送给iPhone和提供商。提供商在发送Push消息时,会附带设备令牌,APNS根据令牌找到对应的iPhone,将消息推送过去。 3. **设备证书和密钥的获取**: -当新iPhone或刷机后的设备需要连接到iTunes激活,这是因为Apple在激活过程中会分配独一无二的设备证书和密钥。这些证书和密钥对于Push通知的正常工作至关重要,因为它们用于生成和验证设备令牌。 4. **问题排查**: -如果遇到Push通知问题,可能的原因包括:设备未正确激活,未能获取设备证书和密钥;网络问题导致TLS连接无法建立;提供商未正确配置,无法与APNS通信;或者用户在设备上禁用了Push通知。 iPhone的Push通知功能涉及了多个层面的安全和认证机制,确保了消息的准确传递和用户隐私的安全。当出现问题时,通常需要从设备状态、网络连接、应用程序配置以及用户设置等多个角度进行排查。理解这一工作原理对于开发者来说,有助于优化应用的推送服务,为用户提供更好的体验。
122.74KB
文件大小:
评论区