我有一个带有专用用户注册和登录系统的应用程序,我想在其中集成 GCM 以进行下游消息传递。
我现在的问题是,这样做的最佳实践/方法是什么。我也可以
- 在所有用户 session 中使用一个单一的 GCM token
- 或在登录时请求一个新的 GCM token ,并在注销时尝试取消注册(“尝试”,因为可能没有网络连接)
我可以想象这两种方法的优缺点,但缺乏深入的 GCM 经验来判断哪种方法更好。
我还遗漏了什么吗?
最佳答案
我更愿意为多个用户保留一个 GCM token 。当您发送推送通知时,发送一个自定义节点作为您要向其发送通知的用户名或用户 ID。
当您实际收到当前登录用户的通知检查时,如果它与推送通知中传递的节点匹配,则向用户显示通知,如果它没有丢弃它(或将其存储在本地)当该用户登录时显示)。
在实际情况下,一部手机只会由一个用户使用(可能有极少数异常(exception)),因此您也不用担心保存它。但这可能是一项商业决策。
更新
谷歌非常清楚地表示,在取消注册和再次注册 GCM token 后可能是相同的。因此,一次又一次地注销和注册 GCM 是没有意义的。这是官方文件的 fragment 。
A registration token isn't associated with a particular logged in user. If the client app unregisters and then re-registers, the app can receive the same registration token or a different registration token.
关于java - 多用户环境中 GCM 的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35361955/