我正在我的应用上实施GCM服务,但我有些疑惑。当用户第一次安装并打开我的应用程序时,它会给他一个令牌来接收通知,这将保存在我的站点的数据库中。当用户决定卸载我的应用程序时,我认为该令牌不再有用,所以我想知道是否可以知道过期的令牌并将其从我的数据库中删除。
答案 0 :(得分:1)
当您的应用服务器向GCM服务器发送消息,尝试访问已取消应用该应用的客户端时,它(GCM服务器)应返回NotRegistered Error
。因此,应用服务器应该从数据库中删除令牌。
通常(实际上取决于客户端平台)when the app is unistalled, what happens is:
- 最终用户卸载客户端应用程序。
- 应用服务器向GCM连接服务器发送消息。
- GCM连接服务器将消息发送到设备上的GCM客户端。
- 设备上的GCM客户端收到消息并检测到客户端应用程序已卸载;检测细节取决于 客户端应用程序运行的平台。
- 设备上的GCM客户端通知GCM连接服务器已卸载客户端应用程序。
- GCM连接服务器将注册令牌标记为删除。
- 应用服务器向GCM发送消息。
- GCM会向应用服务器返回NotRegistered错误消息。
- 应用服务器应删除注册令牌。
醇>
这意味着,如果没有人尝试向您的客户端(未应用该应用程序的人)发送消息,您应该永远无法理解是否仍然使用了令牌。
如果您删除所有未使用的令牌很重要,恕我直言,您可以解决此问题,从您的App Server创建一个触发的测试消息(例如每月一次):这应该引导您到达第2点。