GCM的过期令牌

3

我正在为我的应用程序实现GCM服务,但我有些疑虑。当用户第一次安装并打开我的应用程序时,它会给他一个接收通知的令牌,这个令牌保存在我的网站数据库中。当用户决定卸载我的应用程序时,我认为这个令牌就没有用了,所以我想知道是否可能知道过期的令牌并将其从我的数据库中删除。

1个回答

1
当您的应用服务器向GCM服务器发送消息,试图联系已卸载您的应用程序的客户端时,它(GCM服务器)应返回一个NotRegistered Error。因此,应用服务器应从数据库中删除标记。
通常情况下(实际上取决于客户端平台),当应用被卸载时会发生什么
  1. 终端用户卸载客户端应用程序。
  2. 应用服务器向GCM连接服务器发送一条消息。
  3. GCM连接服务器将消息发送到设备上的GCM客户端。
  4. 设备上的GCM客户端接收到消息并检测到客户端应用程序已被卸载;检测细节取决于客户端应用程序运行的平台。
  5. 设备上的GCM客户端通知GCM连接服务器客户端应用程序已被卸载。
  6. GCM连接服务器标记要删除的注册令牌。
  7. 应用服务器向GCM发送一条消息。
  8. GCM向应用服务器返回一个NotRegistered错误消息。
  9. 应用服务器应删除注册令牌。

这意味着如果没有人尝试向您的客户端(卸载应用程序的客户端)发送消息,则您永远无法了解令牌是否仍在使用。

如果对您来说重要的是删除所有未使用的令牌,则可以通过从应用服务器创建一个测试消息来克服此问题:例如,每个月触发一次,这应该会将您带到第2步。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接