第九块石头

推送技术(APNS)一——原理

| Comments

整个推送流程分为三步骤:

  1. 收集用户身份识别码
  2. 向用户发送推送信息
  3. 从苹果获取卸载用户

1. 收集用户身份识别码

上图中,只有第4步是需要app来操作的,其他步骤iOS系统自动完成。

2. 向用户发送推送信息

上图中,Provider发信息给APNS是需要开发的,后面的流程都是Apple来完成的,最后需要在App上对接收到的Push信息进行响应,也可以使用系统默认的响应方式。

3. 获取卸载用户

这个过程是可选的,非必需的。如果经常要向所有用户推送信息的话,没有执行这个过程,你的数据库里可能会存在很多很多不存在的用户,因为他们把你的App卸载了,哪怕你给他们发推送,他们也是收不到的。这种无效的发送不仅浪费服务器存储空间,还大大降低了发送信息的速度。

为了解决这个问题,我们需要将卸载的用户从服务器中删除。

然而,用户在卸载App的时候,是不会向服务器发送信息的,因此我们无法知道用户是否删除App了。

唯一的方法,就是通过APNS的feedback功能。

当服务器试图向一批用户发送Push信息时,Apple会从中找到已经卸载的用户,然后把这些卸载用户的deviceToken存起来,我们可以通过调用feedback的API来获取这批用户,从而整理我们的数据库。

值得注意的是,Apple对卸载用户的deviceToken存储是有限制的,具体哪些限制不是很清楚,但是有一点可以肯定,当你尝试获取卸载用户后,Apple就会清空这个列表,防止下次再次获取这批卸载用户。

Comments