android - 一旦将预期的消息传递到 android 应用程序,我的服务器能否收到来自 GCM 的确认?

标签 android google-cloud-messaging

我已经开始将 GCM 集成到我的 android 应用程序中。在startup tutorial的帮助下我已经设置了示例演示,效果非常好。我也理解不同的 response statuses当我的服务器将消息发送到 GCM 时收到,我认为这表示我的服务器和 GCM 服务器之间的通信状态。

我的问题是,有没有办法获取 GCM 服务器和 android 应用程序之间的通信状态?基本上是一个确认,表示预期的消息是否已成功传递。我还读到,default timeout是 4 周,除非设置了 time_to_live 标志,这使我能够理解 GCM 维护队列并且肯定会确保消息传递。

但是,为了确保可靠性,作为第三方服务器,我是否需要重试发送相同的消息(如果 GCM 基础架构尚未处理)?如果我需要重试,如​​何确定失败?

我的一种方法是,定义一个推送 ID 并将其与消息一起发送,一旦收到消息,Android 应用程序将使用相应的推送 ID 报告服务器。如果在指定时间内没有收到响应,那么,服务器将重试发送消息。 post 的第二个答案中定义了这种方法。并将帮助监控 GCM 花费的时间(特别是对于 QA 团队)。

最佳答案

我认为不可能从 GCM 服务器获取该信息。这意味着您将不得不依赖于成功接收消息的客户端应用程序与服务器之间的另一种通信方法(如您所述)。

您从 GCM 服务器获得的响应(如您所知)只是让 you know either :

success: Number of messages that were processed without an error.

failure: Number of messages that could not be processed.

这意味着您可以知道哪些注册 ID 得到了正确处理(例如,有效值,仍在 GCM 中注册),但不知道消息是否已成功传递到实际设备。

关于android - 一旦将预期的消息传递到 android 应用程序,我的服务器能否收到来自 GCM 的确认?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14135825/

相关文章:

android - 在 Android 中向 WebView 或相机添加叠加层

Android - 从一个 textView 获取文本并使用 Android 数据绑定(bind)设置到另一个

android - 如何使用 XmlPullParser 解析 RSS 提要?

android - 如何从 Cordova 插件类强制 Android 应用程序崩溃?

android - 将 firebase 消息传递添加到 flutter android 项目时出现依赖错误

android - 在 Android 上处理 Google Cloud Messaging 中的注册 ID 更改

android - fragment 内的复选框 - 捕获选中/取消选中

android - 当用户更新或重新安装应用程序时,注册 ID 是否会发生变化

java - GCM 注销导致应用程序崩溃

azure 通知中心 - 应用程序卸载