Google云消息传递:registration_ids与设备组

时间:2016-04-03 12:23:45

标签: android push-notification google-cloud-messaging

我应该何时更喜欢通过注册ID列表device groupa message with registration_ids parameter发送消息?

管理设备组似乎只会增加复杂性。对于设备组,应用服务器应包含何时创建组或仅添加注册ID的逻辑。服务器仍然需要在一些数据库中保存注册ID,此外它现在需要保存通知密钥。 responses似乎不那么详细:未指定失败的原因,因此很难知道应该做些什么以防止失败(应用程序是否已卸载?注册令牌已过期?等等)。
我错过了什么?有什么好处?

提前致谢!

2 个答案:

答案 0 :(得分:0)

Registration_idsDevice Group可能很棘手,可以在开发人员的选择中使用。根据此guide

使用注册ID发送消息
  

在此上下文中,“简单”表示从应用服务器发送到的消息   设备上的客户端应用程序,而不是通过主题路由邮件   或设备组。

Device Group

  

通过设备组消息传递,应用服务器可以将单个消息发送到在属于某个组的设备上运行的应用的多个实例。通常,“组”是指属于单个用户的一组不同设备。但是,组也可以表示应用程序实例以高度相关的方式运行的一组设备,例如安装了温度控制应用程序的电话,智能恒温器和自动开窗器。组中的所有设备共享一个公共通知密钥,这是GCM用于将消息扇出到组中所有设备的标记。

基于此发送单个消息,其中register_ID列表用于更直接的方法,简单的编码和管理密钥的复杂性更低。虽然设备组使用设备组处理已注册设备的复杂列表(具有在服务器中注册的多个设备的单个用户),但使用更合理。

注意:检查服务器是否可以处理这些消息类型的查询。

答案 1 :(得分:0)

设备组主要用于具有运行相同应用的多个设备的用户,因此所有设备组都属于同一设备组。这些的一些好处包括:

通知同步:您可以实施一些可以同步通知的酷炫功能,例如在一台设备上取消通知,同一通知将在其他设备上消失。或者当一个设备按下通知时,设备的详细信息,应用程序的状态,配置等可以发送到所有其他设备,也可以相应地调整其他设备。

更少的微处理:我相信当用户卸载或获取其设备的新令牌ID时,设备组将自动调整为不再发送到该设备。因此,如果用户卸载应用程序,则无需更新该ID列表即可删除其令牌。您仍然必须从主服务器数据库中删除。

更容易区分您可以让每个用户(即使他们只有一台设备)属于他们自己的设备组。这使得在选择不同的用户发送通知时更容易,您不必挖掘用户并挖掘所有相关ID,只需挖掘他们的通知密钥,FCM将处理其余的。

当然这些都是非常具体的用例,但我确信您可以使用通知同步做更多的工作,具体取决于您想要使用的应用类型。