1、APNS推送说明
苹果的推送服务APNs基本原理简单来说就是苹果利用自己专门的推送服务器(APNs)接收来自我们自己应用服务器的需要被推送的信息,然后推送到指定的iOS设备上,然后由设备通知到我们的应用程序,设备以通知或者声音的形式通知用户有新的消息。要完成APNS推送首先需要我们向APNS服务器注册,注册成功以后服务器会返回一个device_token,我们在将返回的device_token保存下来,当要向APNS发送消息时,我们的应用服务器按照一定的格式打包消息,然后再结合device_token一并发给APNS服务器,APNS服务器在将消息推送到相应的手机上,然后再屏幕上显示我们推送的消息,整个注册过程如下:
上图完成了一下步骤
1、device携带设备号链接APNS
2、链接成功以后,apns打包处理产生device_token,并返回给device
3、device向自己的应用服务器注册
这样就完成了在apns与自己应用服务器的注册。
执行顺序如下图:
这里要提到的一点是,我们的设备和APNS服务器之间的通讯是基于SSL协议的TCP流通讯,二者之间维持一个长连接,当从APNS服务器注册成功后,一定要将device_token发送给我们的应用服务器,因为在推送过程中,首相是由我们的应用服务器(上图中Provider)将需要推送的消息结合device_token按指定格式(后面会提到)打包然后发送给APNS服务器,然后由APNS服务器推送给我们的设备。
好了,注册设备的过程完成了,接下来就是如何推送了:
推送的步骤如下:
1、首先,安装了具有推送功能的应用,我们的设备在右网络的情况下,连接苹果推送服务器,连接过程中,APNS会验证device_token,连接成功以后维持一个长连接;
2、provider(我们自己发送消息的服务器),将需要被推送的消息与被推送设备的device_token一起打包发送给APNS服务器;
3、APNS服务器接收到消息以后,将消息推送给指定device_token的设备;
4、设置收到消息以后,通知我们的应用程序(以在provider端设置的方式提示用户,声音或者弹出框)。
直观的流程图如下图:
apns的整个推送过程如下图:
从上图可以看出:
1、首先应用程序注册消息推送。
2、IOS向APNS Server要device_token,APNS Server将device_token返回给应用程序,应用程序接收device_token。
3、应用程序将接收到的device_token发送给自己的应用程序服务器(即provider)。
4、应用程序服务器(provider)向APNS服务器发送消息
5、APNS服务器将消息发送给iPhone应用程序。