C2DM到Google云消息传递(GCM)

时间:2012-06-27 18:36:11

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

正如您所看到的,Google正在迁移其推送通知系统。

Google Developer guide for GCM

我想我不是一个人在想:从C2DM获得的代币是否仍然适用于GCM?

如果没有,这意味着我需要所有用户使用新版本更新我的应用程序更新服务器上的令牌...

OR

我可以保留并行系统,这是我不认为它是一个很好的解决方案

OR

继续使用C2DM直到它完成,然后我就死了: - )

3 个答案:

答案 0 :(得分:13)

虽然客户端迁移很容易(只需将'发件人'从电子邮件地址更改为项目ID),但如果您的应用已使用C2DM一段时间,您仍将面临转型问题。请在此处查看我的问题:Posting GCM notification to existing C2DM registration ids

基本上问题是在转换期间,您需要维护来自旧C2DM应用程序的设备注册ID,以及来自使用GCM的新应用程序的新注册表。除非您可以强制所有用户同时升级所有用户,否则您必须在服务器中构建其他逻辑(即在数据库表中添加新列以指示GCM reg id)以处理向C2DM和GCM发送通知可预见的未来。

如果您的服务器仅向所有设备发送通知,那么这应该是轻松迁移,因为您可以将C2DM和GCM通知发送到数据库中的所有设备,并逐步从旧的C2DM注册中删除陈旧或未注册的设备。随着时间的推移,您应该会在数据库中看到越来越少的C2DM设备注册ID。

答案 1 :(得分:3)

我已将我的应用从C2DM迁移到GCM。不,我不应该说迁移。对于C2DM和GCM,正确的术语是“共存”。因为我无法强制所有当前用户升级到GCM。我的目标是确保新的(参考GCM)和存在(参考C2DM)用户能够获得推送消息。

对于客户方:

  1. 将发件人更改为项目ID
  2. 对于服务器端:

    1. 在数据库中添加一个新列以存储GCM注册ID。
    2. 如果用户使用gcm注册ID进行记录>然后推送到gcm服务器>别的c2dm服务器
    3. 到目前为止,我能够实现我的反对意见。但我唯一担心的是,当c2dm完全关闭?如果这一天真的到来,我想如何强迫我的旧用户升级到gcm?

答案 2 :(得分:1)

Android开发者文档网站上有migrating guide

C2DM将继续提供支持一段时间,最好在GCM中迁移我们的应用程序并发布我们应用程序的更新版本。 (按照我的想法)