【问题标题】:C2DM - How to push messages to several devices with one sender ID?C2DM - 如何将消息推送到具有一个发件人 ID 的多个设备?
【发布时间】:2012-02-06 11:54:36
【问题描述】:

我有一个注册 C2DM 的 Gmail 帐户。

我想要的是我的应用程序,感谢这个帐户(在为每个设备请求注册 ID 和身份验证令牌之后),能够向所有设备提供消息 安装应用程序的位置。

我想知道是否可以这样使用C2DM..

非常感谢

(详情请咨询我..)

ps 我让 c2dm 在模拟器上工作,但我当然不能尝试之前写的,因为我需要几部手机..

【问题讨论】:

  • 您的问题需要澄清一下。当您说您希望您的应用能够向注册到您的 c2dm 帐户的所有设备发送通知时,您是说 android 应用本身会将通知推送到其他设备上相同应用的其他安装?
  • 没错! android 应用程序当然只会通知已安装该应用程序的用户有新内容可用。
  • 您为什么要从设备发出您的 c2dm 通知?这种事情应该从某个地方的后端组件完成,该组件聚合所有注册 id 并确定哪些需要通知等。
  • 没错,我之前检测(选择)感兴趣的设备,然后我通知他们第三部分服务器上有一条新闻(在我的情况下)可用。我需要 c2dm 成为更新我希望他们阅读的新闻的用户(电话)

标签: android account device android-c2dm sender-id


【解决方案1】:

离开您的问题和 cmets,听起来您只是想知道是否可以仅使用一个发件人 ID 将 c2dm 通知发送到数量不定的设备。

这正是 c2dm 应该工作的方式。您创建一个发件人 ID 以在您的后端服务器上使用,并且该发件人 ID 在您的应用程序中用于注册 c2dm 通知。然后,您的后端会收集所有注册 ID,并使用您的一个发件人 ID 向相关方推送通知。

【讨论】:

  • 是的,这就是我选择 c2dm 的原因。但是我想知道我可以通过一封规则电子邮件向其推送消息的设备数量是否有限制(我知道每天有 200,000 条消息的限制)。你确定没有限制?感谢您的回答!
  • @psk 是的,您提到的限制是配额,这是我所知道的发件人 ID 方面的唯一限制。您在评论中提到的 TOO_MANY_REGISTRATIONS 错误是因为手机上的登录帐户同时在太多不同的应用上注册了 c2dm。
  • 好吧,你说:TOO_MANY_REGISTRATIONS 配额是指电话上的帐户,而不是角色电子邮件。相反,似乎对角色电子邮件没有限制。好的,非常感谢!
【解决方案2】:

如果我正确理解了您的问题,答案是:您不能。

您必须为要访问的每台设备向 Google 服务器发送一个 http 请求。

无法向所有注册了您的服务的用户广播消息。

这很令人沮丧,因为在我的情况下,我会为我的所有用户发送简报,因此打开与数百万用户的连接非常昂贵。

为了解决可扩展性问题,我创建了一个简单的 appengine map-reduce 任务,该任务循环遍历所有用户注册并创建到 google 服务的 http 连接,这是您可以做到的最快速度,因为它会动态实例化新服务器以供您交付需要。

【讨论】:

  • 嗯,这不是我的意思,但感谢您的回复!我读到不可能广播消息,但我的问题是在此之前:我想知道是否只使用一个角色电子邮件我可以将消息推送到多个(100s,1000s)设备(但在我看来,你是拥有数百万用户,不是吗?)。例如,配额“TOO_MANY_REGISTRATIONS”是否不涉及所有这些混乱?似乎它阻止了一个用户向 c2dm 注册超过 100 次.. Ps 你是如何解决 ACCOUNT_MISSING 问题的?您是否要求用户创建一个新的 Google 帐户?谢谢
  • 我实施的方式是每个用户每天只注册一次。用户的注册信息保存在我的服务器中,而不是手机中。我发现通过这种方式,我发给用户的 80% 的消息实际上都会到达手机。对于 ACCOUNT_MISSING 问题,我的应用程序不需要 C2DM 作为主要的运行方式,所以我忽略了这个问题。
  • 你使用什么协议?我的应用实际上也是一个时事通讯。谢谢!
  • 我有一个名为“食谱搜索”的应用程序。有一个类似 stackoverflow 的功能,用户可以在其中对食谱提出问题。每当用户回复该问题时,我都会向所有收听该线程的用户发送 C2DM 通知。这只是一个示例,但 C2DM 已通过该应用广泛使用。
【解决方案3】:

C2DM 已被弃用。 GCM 取代了它,它允许您通过一个 HTTP POST 向 1000 台设备发送消息。

C2DM->GCM 迁移指南: http://developer.android.com/guide/google/gcm/c2dm.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-10
    • 2014-10-15
    • 1970-01-01
    相关资源
    最近更新 更多