13

您可能已经看到,Google 正在迁移其推送通知系统。

GCM 谷歌开发者指南

我想我不是一个人想知道:从 C2DM 获得的令牌对 GCM 仍然有效吗?

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

或者

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

或者

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

4

3 回答 3

13

尽管客户端迁移很容易(只需将“发件人”从电子邮件地址更改为项目 id),但如果您的应用程序使用 C2DM 一段时间,您仍然会面临转换问题。在此处查看我的问题:将 GCM 通知发布到现有 C2DM 注册 ID

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

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

于 2012-06-28T17:44:00.753 回答
3

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

对于客户端:

  1. 将发件人更改为项目 ID

对于服务器端:

  1. 在 db 中添加一个新列来存储 GCM 注册 ID。
  2. 如果用户使用 gcm 注册 ID 记录 > 然后推送到 gcm 服务器 > 否则 c2dm 服务器

到目前为止,我能够实现我的反对意见。但我唯一担心的是,c2dm 何时会完全关闭?如果这一天真的来了,我想如何强迫我的老用户升级到 gcm?

于 2012-07-05T02:37:13.447 回答
1

Android 开发者文档站点上有一个迁移指南。

C2DM 会继续给予支持一段时间,最好在 GCM 中迁移我们的应用程序并发布我们应用程序的更新版本。(根据我的想法)

于 2012-06-27T19:15:09.447 回答