【问题标题】:Google Cloud Messaging (GCM) downstream message delayGoogle Cloud Messaging (GCM) 下游消息延迟
【发布时间】:2014-02-11 02:49:36
【问题描述】:

我已经从 http://code.google.com/p/gcm/ 下载并设置了 Android gcm-client 和 gcm-demo-server(http 服务器)。我已经设法在我的 Android gcm-client 应用程序中接收下游消息。我做了很多测试,具有以下特点:

  1. 服务器使用浏览器 API 密钥或服务器 API 密钥。
  2. 数据连接是 3G 或 WiFi
  3. 发送的消息包含/不包含其他数据。
  4. 发送的消息有/没有折叠键。
  5. 发送的消息已将 delayWhileIdle 设置为 false。
  6. 发送的消息将 timeToLive 设置为 0 或 5 分钟。
  7. 服务器位于欧洲的两个不同位置。
  8. Android 应用在位于欧洲不同地方的两台设备上运行。

在所有情况下,应用都会在发送消息后 25-30 秒后收到消息。但是,我测试了其他使用 GCM 下游消息的 Android 应用程序,在大多数情况下,消息几乎立即到达(

我可以在客户端或服务器中进行更改,以便更快地在应用中接收消息吗?

我还尝试使用http://developer.android.com/google/gcm/ccs.html 中给出的 gcm XMPP 服务器(使用 Smack 的 Java 应用程序),但我没有发送任何消息。我从 GCM 云连接服务器 (CCS) 收到的响应显示“项目 XXXXXXXXXX 未列入白名单”。最可能的原因是我的 CCM 注册尚未获得批准,如 Google CCS (GCM) - project not whitelisted 所述。我在各种网站上看到,审批通常需要2-3个月以上,所以我很可能无法很快测试XMPP服务器。

您是否可能只能通过使用 XMPP 服务器接收几乎即时的消息?有人对使用 XMPP 服务器遇到的延迟有任何经验吗?

提前致谢

【问题讨论】:

  • 你怎么知道“其他Android应用”有“
  • 通过测试它们。例如,在文本消息应用程序中,您可以作为用户发送消息并作为另一个用户接收消息并测量传递时间。
  • 你怎么知道GCM参与了消息的传递?
  • 通过监控应用从远程主机(GCM 服务器)的 5228 端口接收到的数据包。

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


【解决方案1】:

我认为问题出在保留消息的 android gcm-client 演示中,而不是在 gcm-server 中。 在gcm-client demo的GcmIntentService.java文件中可以看到函数protected void onHandleIntent(Intent intent)代码如下:

[...]
// If it's a regular GCM message, do some work.
} else if (GoogleCloudMessaging.MESSAGE_TYPE_MESSAGE.equals(messageType)) {
// This loop represents the service doing some work.
    for (int i = 0; i < 5; i++) {
    Log.i(TAG, "Working... " + (i + 1)
            + "/5 @ " + SystemClock.elapsedRealtime());
    try {
        Thread.sleep(5000);
    } catch (InterruptedException e) {
    }
}
[...]

此代码在每次迭代(总共 25 秒)之前使 android 应用程序休眠 5 秒,然后再发送通知消息。由于是一个示例,您可以删除此代码,您可以在显示通知之前插入 else if 语句中的一些工作。

我已经实现了一个 xmpp 服务器,我在

希望对我有帮助,对我的英语不好表示抱歉。

【讨论】:

  • 救了我的命,他们为什么要放这段代码??!?太没必要了。。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多