【问题标题】:C2DM TO Google Cloud Messaging (GCM)C2DM 到 Google 云消息传递 (GCM)
【发布时间】:2012-06-27 18:36:10
【问题描述】:

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

Google Developer guide for GCM

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

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

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

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

【问题讨论】:

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


    【解决方案1】:

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

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

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

    【讨论】:

    • 很高兴我不是一个人有这个问题,我不太喜欢维护两个系统的想法,但我真的不想扔掉我现有的令牌...... :-(
    【解决方案2】:

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

    对于客户端:

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

    对于服务器端:

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

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

    【讨论】:

    • 我同意“共存”,但不是一个干净的解决方案:-/我在用户代理中有一种方法可以知道用户正在使用哪个应用程序版本,我可以强制升级发布,但可能听起来有点残酷(因此会失去用户),这就是我想避免它的原因。
    【解决方案3】:

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

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

    【讨论】:

    • 这正是迁移指南中推荐的内容。首先看一下迁移指南,它看起来很容易被许多应用程序迁移。
    • 好的,但是你将如何处理过渡?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多