我正在学习如何从客户端(Android)和服务器端(GCM
)实现ASP.NET
。我花了一些时间阅读与GCM
相关的整个Google文档,我也尝试了他们提供的示例。
因为我需要将GCM
集成到现有的应用程序中,所以我想了解一些特定的内容。
当我得到它时,注册ID是一个令牌,它将特定设备上的应用程序绑定到GCM
服务和应用服务器;因此,后端可以将下游消息直接发送到该设备。
在我的方案中,我可以让多个用户可以在同一设备上使用该应用程序,这意味着他们需要在应用程序中登录,并且他们在服务器端的数据库上有一个帐户。我是否需要为该设备上的每个用户存储不同的注册ID?或者注册ID仍然仅指应用程序?
那么相同的场景又分布在多个设备上,因为用户可以拥有多个设备?
提前致谢。
答案 0 :(得分:0)
这与您的应用程序的上下文以及您希望使用通知
的内容有很大关系每个设备有一个注册ID就可以了。
我使用服务器处理的订阅标记来管理我的多个用户。
如果你有一个运动应用程序,那么请选择该方案:
用户A&用户B共享同一设备。每个用户都订阅了一个标签。
User A is subscribed to two tags (Basketball & Football)
User B is subscribed to two tags (Tennis & Basketball)
当用户A注销时,您清除与该用户关联的标签,当用户B登录时,您将获取他/她的标签。
您的服务器根据用户订阅的标签知道要发送到设备的通知。
多设备方案:
同样,当您的用户登录时,您将获得他们的标签。该设备还有自己的GCM令牌。
答案 1 :(得分:0)
注册ID是应用的ID,如果应用版本更新,则可能会更改。无论用户帐户如何,您的推送通知都将通过您的应用在设备上发送。因此,每台设备上的每个用户都会收到您的通知,每个设备只能存储一个拒绝ID。
答案 2 :(得分:0)
对于多个用户:如果您的消息是特定于用户的,则您需要检索用户的令牌并仅在他们登录时订阅它。当您切换用户时删除/取消注册前一个令牌,然后保存/注册新用户的令牌。
如果每个设备有多个用户,但是当用户注销时,您不应该这样做。这将防止特定于用户的消息在错误的时间显示给错误的用户。
对于多个设备:听起来好像在寻找Device Group Messaging。
通过设备组消息传递,应用服务器可以将单个消息发送到在属于某个组的设备上运行的应用的多个实例。通常,“组”是指属于单个用户的一组不同设备。
由于collapse_key
,这也很好。当同一帐户中的某个设备打开通知时,它将关闭其他设备上的通知..