gpt4 book ai didi

java - Firebase Cloud Messaging 多次发送上游消息,尽管我发送了确认

转载 作者:太空宇宙 更新时间:2023-11-04 12:02:15 27 4
gpt4 key购买 nike

我正在开发一个通过 FCM 将数据发送到我的服务器的应用程序。根据the Firebase Docs ,我需要发送一条 ACK 消息,如下所示:

<message id="">
<gcm xmlns="google:mobile:data">
{
"to":"REGID",
"message_id":"m-123"
"message_type":"ack"
}
</gcm>
</message>

我的服务器收到我从 Android 应用程序发送的消息,并发送此 Ack 消息:

<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 库。

最佳答案

与 Firebase 团队联系后,我们发现将消息的 TTL(生存时间)设置为“0”会有所帮助。发送 FCM 消息的代码现在如下所示:

                 fcm.send(new RemoteMessage.Builder(FCMConstants.SENDER_ID + "@gcm.googleapis.com")
.setMessageId(msgid)
.setData(data)
.setTtl(0)
.build());

关于java - Firebase Cloud Messaging 多次发送上游消息,尽管我发送了确认,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40791072/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com