GCM XMPP 应用程序服务器未收到下游错误

GCM XMPP App Server Not Receiving Downstream Errors

我正在处理我的后端应用程序 GCM 服务器,根据我对文档的理解,我的应用程序服务器发送的每条下游消息都应该在成功时收到 ACK,如果出现问题则应收到 NACK。当我的应用程序接收到下游消息时,我能够成功发送它们,但我从未收到任何 ACK。我尝试通过在发送下游消息时输入伪造的注册 ID 来测试 NACK,但仍然一无所获。

我正在使用 smack 库,我已经尝试使用两者发送下游消息

XMPPTCPConnection.send()
XMPPTCPConnection.sendStanzaWithResponseCallback()

而且都没有回应。我错过了什么吗?

好的,我明白了!我正在关注 中的一些示例代码,发现正在使用的 StanzaFilter 确保侦听器只看到包含您的 SENDER_ID 的请求。我不确定过去是否有所不同,但 ACK 和 NACK 不包含 SENDER_ID,所以它们被我的听众过滤掉了。

我现在用 connection.addAsyncStanzaListener(this, MessageTypeFilter.NORMAL); 替换了我的 StanzaFilter,而不是示例中的自定义过滤器。我计划在 GitHub 中添加一个基本服务器,其中包含我的所有发现,供其他希望实施自己的服务器的人使用。