后者交付确认。从 GCM 到 App 服务器?

Latter Delivery Ack. from GCM to App server?

我在聊天应用程序中使用 GCM。如果用户离线(未连接到应用程序但互联网处于活动状态),那么我将推送通知发送到它完美接收的设备。 但是当设备完全离线(既没有连接到应用程序也没有激活互联网)时,GCM 向我发送类似 { id: XXXXXXXX,success: 3,failure: 2{message_id:xxxxx,ect:..} } 在我的应用程序服务器上。

两台设备完全离线,它们没有有效的互联网连接.. 设备何时连接到互联网 GCM 向他们发送消息。 但是我的应用程序服务器如何知道消息是由 GCM 传送的。

我搜索了很多,但没有得到满意的答案。 我在客户端设备(Android 设备)的 messageRecive 上尝试过,我会将 httpRequest 发送到我的应用程序服务器,但它不适合我的应用程序,它使应用程序非常慢。

所以问题是我怎么知道我的失败 2 消息已送达。

首先,下游消息发送到GCM Server后,您无需更新您的应用服务器。如 here 所述,GCM 服务器会在设备离线时存储消息,并在设备在线时发送该消息。

(现在假设你想要的是在客户端处理网络任务) 您可以使用 GcmNetworkManager 通过 Play 服务在系统中批处理网络发现和连接相关任务。浏览文档。

您也可以从 Google Play Developer Console 使用 GCM 统计信息和诊断。这为您提供了特定应用程序处理的消息的详细信息(通过注册令牌)直至特定消息的状态(通过消息 ID)。更多解释 here

(不过我不太清楚你到底想要什么)

编辑

but how can my App server will Know that Message is delivered by GCM.

抱歉,再次阅读我意识到这是真正的问题。答案很简单 here.