【发布时间】:2016-11-24 16:25:01
【问题描述】:
我正在开发一个通过 FCM 将数据发送到我的服务器的应用程序。根据the Firebase Docs,我需要发送一条如下所示的 ACK 消息:
<message id="">
<gcm xmlns="google:mobile:data">
{
"to":"REGID",
"message_id":"m-123"
"message_type":"ack"
}
</gcm>
</message>
我的服务器接收到我从我的 Android 应用程序发送的消息,并发送此确认消息:
<message to="devices@gcm.googleapis.com" id="R88Ub-10">
<gcm xmlns="google:mobile:data">
{
"to":"dpDymtuUdEO-...-MRDQvLXMhfnEEUqEYZfs",
"message_id":"64cc690-...-227a0b7eb61",
"message_type":"ack"
}
</gcm>
</message>
(“-...-”部分只是为了缩短/匿名化代码)
但是如果我重新启动我的服务器,我会收到一些我已经收到的消息,并且已经发送了一个 ACK……我在标签中没有“to”和“id”的情况下进行了测试,但似乎没有任何效果。
我在 ACK 消息中使用的“to”是我想要 ACK 的消息的“from”。
我做错了什么?我使用Smack 作为 XMPP 库。
【问题讨论】:
标签: java google-cloud-messaging xmpp firebase-cloud-messaging smack