繁体   English   中英

虽然我发送了Acknowledge,但Firebase Cloud Messaging会多次发送上游消息

[英]Firebase Cloud Messaging sends upstream message multiple times, although I send Acknowledge

我正在开发一个通过FCM将数据发送到我的服务器的应用程序。 根据Firebase文档 ,我需要发送一条如下所示的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”是我想要确认的消息的“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());

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM