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

标签 java android google-cloud-messaging

我有一个带有专用用户注册和登录系统的应用程序,我想在其中集成 GCM 以进行下游消息传递。

我现在的问题是,这样做的最佳实践/方法是什么。我也可以

  1. 在所有用户 session 中使用一个单一的 GCM token
  2. 或在登录时请求一个新的 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.

Official Documentation

关于java - 多用户环境中 GCM 的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35361955/

相关文章:

java - java中/proc/uptime等虚拟文件

java - 在 Java 中实现命令模式的问题

node.js - 在 node.js 应用程序中接收 GCM 推送通知

android - 服务器域过期后发送 gcm 通知时获取 MismatchSenderId

java - 保护字符串常量免受逆向工程

android - ExifInterface 和 VM 中止时出现奇怪的致命崩溃

java - 解析 JSON 数组、DOCTYPE 时出错

android - 如何从我的应用程序链接到我在 Google Play 中的应用程序?

android - GCM token 什么时候到期,InstanceID 是什么?

java - 无法获取jsp中的数据输入,从jsp到表单,使用逻辑:iterate