Java 多用户环境中GCM的最佳实践
我有一个带有专用用户注册和登录系统的应用程序,我想在其中集成GCM以进行下游消息传递 我现在的问题是这样做的最佳做法/方法是什么。我也可以Java 多用户环境中GCM的最佳实践,java,android,google-cloud-messaging,Java,Android,Google Cloud Messaging,我有一个带有专用用户注册和登录系统的应用程序,我想在其中集成GCM以进行下游消息传递 我现在的问题是这样做的最佳做法/方法是什么。我也可以 在所有用户会话中使用一个GCM令牌 或在登录时请求新的GCM令牌,并在注销时尝试注销(“尝试”,因为可能没有网络连接) 我可以想象这两种方法的利弊,但缺乏深入的GCM经验来说明哪种方法更好 我还遗漏了什么吗?我更愿意为多个用户保留一个GCM令牌。发送推送通知时,请将自定义节点作为用户名或用户ID发送给要向其发送通知的节点 当您实际收到当前登录用户的通知检查时
我还遗漏了什么吗?我更愿意为多个用户保留一个GCM令牌。发送推送通知时,请将自定义节点作为用户名或用户ID发送给要向其发送通知的节点 当您实际收到当前登录用户的通知检查时,如果它与传入的推送通知中的节点匹配,则向用户显示该通知,如果它没有放弃该通知(或将其存储在本地以在该用户登录时显示) 在实际场景中,一部手机只能由一个用户使用(很少有例外),所以您也不必担心保存它。但这可能是一个商业决定 更新 谷歌非常明确地表示,在取消注册和再次注册GCM令牌后,可能是相同的。因此,一次又一次地取消注册和注册GCM是没有意义的。这是官方文件的片段 注册令牌与特定登录用户不关联。如果客户端应用取消注册,然后重新注册,则该应用可以接收相同的注册令牌或不同的注册令牌
你认为第二种方法的缺点是什么(除了更复杂)之外?多用户安卓系统的设置实际上是我还没有考虑到的。继续取消注册和注册GCM是没有用的。我不认为第二种方法有任何优势,这就是为什么我说我更喜欢第一种方法。重新注册的想法来自于这样一种假设,即新注册返回一个新ID,该ID将与新用户新关联。正如我现在发现的,同样的代币有可能会被退回。这就是你的意思吗?在这种情况下,重新注册真的没有多大意义。是的,可能会返回相同的令牌。