简单的说一下概念,远程推送通知,其实就是从远程服务器推送给客户端的通知是需要联网的。

远程推送服务又称为APNs全称为Apple Push Notification Services

其实现实App中有很多这样的例子,就比如说用户关闭了app之后,肯定就无法和app的服务器沟通了,无法从服务器上去获取数据了

这个时候我们就需要远程推送通知了,也就是说不管用户有没有打开app,只要联网了,都能去接收到服务器推送的远程通知。

有一点需要注意的是,所有的苹果设备在联网的情况下,都会和服务器建立一个长连接,也就是说联网了,就建立连接了。

这个长连接可以用于时间的校准,还有就是系统的升级,有的时候会自动的下系统更新安装包,还有就是可以查找我的iphone。

长连接的好处其实就是数据的传输速度快,可以不用就是一下子断一下,一下子断一下,可以数据保持最新的一个状态。

以及远程消息推送的话其实是我们的应用程序和苹果的服务器通过device token做一个连接,然后苹果的服务器再和我们的服务器做一个连接的过程


获取device token的大致过程的话是这样子的

首先设备和苹果服务器建立一个SSL连接,通过UDID和应该程序的Bundle ID和一些其他的相关信息去向苹果请求获取token,然后苹果服务器给你返回一个token,然后做一些相关的处理然后你再把token发给我们的服务器就可以了。


我们的服务器如何给app发送远程通知?

首先有两个值肯定是要传的一个是Token还有个就是发送的内容,这个token就是相当于一个令牌,发送的是先给苹果服务器发送消息,然后苹果服务器再去通过解密这个token,然后去找到我们的手机然后在发送过去。

我们需要注意的是这个device token肯定是会变的,因为我们设备如果变的了话肯定是会变的,还有就是一些其他的过程。