【问题标题】:Google Cloud Messaging - Send Message谷歌云消息 - 发送消息
【发布时间】:2014-04-19 10:05:51
【问题描述】:

我有云数据库,所以我有所有设备的注册 ID。

我必须使用服务器来发送消息吗?我可以使用 regID 直接从一台 Android 设备向另一台设备发送消息吗?我可以使用安卓设备作为服务器吗?

【问题讨论】:

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


    【解决方案1】:

    如果每个 Android 设备都可以访问注册 ID 数据库,则它可以在不使用服务器的情况下将 GCM 消息发送到其他设备。您只需对 GCM 执行与通常从服务器执行的相同的 HTTP 请求。该请求将直接发送到 GCM 服务器,然后从那里传递到您在另一台设备上的应用程序。要执行该请求,除了收件人注册 ID 之外,您的应用还需要知道发件人 ID(用于注册到 GCM)和 API 密钥(用于发送消息)。

    您不能使用gcm.send 方法。该方法将消息发送到您的服务器。

    【讨论】:

    【解决方案2】:

    是的,您可以向您的服务器发送消息:

    data.putString("my_message", "Hello World");
    data.putString("my_action", "com.google.android.gcm.demo.app.ECHO_NOW");
    String id = Integer.toString(msgId.incrementAndGet());
    gcm.send(SENDER_ID + "@gcm.googleapis.com", id, data);
    

    您可以直接向其他设备发送消息,因为只有 Google 的服务器知道接收设备的位置。消息传递方案如下所示:

    Sender > Google's server > Your server > Google's server > Receiver

    理论上,您可以将接收者的 id 添加到发送数据中,在您的服务器上获取它,然后将新消息发送到具体设备。

    您可以在documentation中找到更详细的说明

    【讨论】:

      猜你喜欢
      • 2015-01-27
      • 1970-01-01
      • 2015-03-08
      • 1970-01-01
      • 2013-10-04
      • 2016-04-21
      • 2016-12-05
      • 1970-01-01
      相关资源
      最近更新 更多