多用户环境中GCM的最佳实践

时间:2016-02-12 11:52:35

标签: java android google-cloud-messaging

我有一个带有专用用户注册和登录系统的应用程序,我希望将GCM集成到下游消息传递中。

我现在的问题是,最佳做法/做法是什么。我可以

  1. 在所有用户会话中使用一个GCM令牌
  2. 或在登录时请求新的GCM令牌,并在注销时尝试取消注册("尝试"因为可能没有网络连接)
  3. 我可以想象两种方法的优点和缺点,但缺乏深入的GCM经验来说明哪一种会更好。

    我错过了什么?

1 个答案:

答案 0 :(得分:1)

我更愿意为多个用户保留一个GCM令牌。发送推送通知时,请将自定义节点作为要向其发送通知的用户名或用户ID发送。

当您实际收到当前登录用户的通知检查时,如果它与推送通知中传递的节点匹配,则向用户显示通知,如果它没有丢弃(或将其存储在本地当用户登录时显示。)

在实际情况下,只有一个用户可以使用一部手机(可能只有很少的例外),因此您也不必担心保存它。但这可能是一个商业决策。

<强>更新

谷歌非常明确地表示,在取消注册并再次注册GCM令牌后可能会相同。因此,一次又一次地取消注册和注册GCM是没有意义的。这是官方文件的片段。

  

注册令牌与特定登录用户无关。如果客户端应用程序取消注册然后重新注册,则应用程序可以接收相同的注册令牌或不同的注册令牌。

Official Documentation