我正在使用GCM进行在线聊天应用。但我认为仍有一些领域需要深入挖掘。我知道GCM为每个设备/应用程序提供一个注册ID。如果一个用户注销而另一个用户从同一设备登录,该怎么办?如何确保将消息发送给相关用户。 为了解决这个问题,我每次登录或注册时都会注册用户。当他/她注销时,我将从我的数据库中删除注册ID。我仍然对这种方法有一些疑问,任何信息都会非常有用。
答案 0 :(得分:2)
客户端应用程序应调用这些取消注册和取消订阅 仅在需要停止接收消息时才起作用。的开发者 永远不应该注销客户端应用程序作为注销机制或 用于在用户之间切换,原因如下:
- 注册令牌与特定登录无关 用户。如果客户端应用程序取消注册然后重新注册,则应用程序可以 收到相同的注册令牌或不同的注册令牌。
- 取消注册和重新注册每个最多可能需要五分钟 传播。在此期间,由于此消息可能会被拒绝 未注册的状态,消息可能会转到错误的用户。
制作 确保消息发送给目标用户:
- 应用服务器可以维护当前用户与用户之间的映射 注册令牌。
- 然后客户端应用可以检查以确保这一点 它收到的消息与登录用户匹配。
这意味着: