我正在使用我的后端应用程序GCM服务器,根据我对文档的理解,我的应用程序服务器发送的每个下游消息都应该在成功时收到ACK,如果有问题则应该收到NACK。我能够在我的应用程序接收它们时成功发送下游消息,但我从未得到任何确认。我尝试通过在发送下游消息时输入伪造的注册ID来测试NACK,但仍然一无所获。
我正在使用smack库,我尝试使用
发送下游消息XMPPTCPConnection.send()
XMPPTCPConnection.sendStanzaWithResponseCallback()
并且都没有给出回应。我错过了什么吗?
答案 0 :(得分:2)
好的,所以我想出来了!我正在关注here中的一些示例代码,发现正在使用的StanzaFilter确保侦听器只能看到包含您的SENDER_ID的请求。我不确定过去的情况是否有所不同,但ACK和NACK并不包含SENDER_ID,因此它们会被我的听众过滤掉。
我现在用connection.addAsyncStanzaListener(this, MessageTypeFilter.NORMAL);
替换了我的StanzaFilter,而不是示例中的自定义过滤器。我计划向GitHub添加一个基本服务器,其中包括我想要实现自己服务器的其他人的所有发现。