在短时间内发送多条消息时,TOPICS_MESSAGE_RATE_EXCEEDED

时间:2016-10-25 13:06:29

标签: android firebase google-cloud-messaging firebase-cloud-messaging

我需要在一秒钟内向一个主题发送多条消息。

我有三个Android设备,我正在尝试在短时间内(一秒钟)向主题发送多个下游消息(三个设备已订阅)。我们的服务器确认了其中三个。

在那一刻,我们向主题发送了两条消息,但其中一条消息返回NACK,错误消息为TOPICS_MESSAGE_RATE_EXCEEDED

现在,如果time_to_live没有先到期,我们会再次重新发送该邮件。在我们的示例中,当用户再次点击该消息时,该消息再次尝试重新发送。这是正确的行为吗?

之前有没有人遇到这个问题?它是如何解决的?

1 个答案:

答案 0 :(得分:2)

这是GCM / FCM的预期行为。在短时间内向主题发送多条消息将导致此错误。

我认为这可以作为安全网用于GCM / FCM对抗泛滥,也是关于处理流量的。试想如果您有1000个订阅者,那么您可以在不到一秒的时间内向该主题发送多个多条消息。

您应该为发送到主题的每条消息实施延迟(大约5-10秒)。

@ Eran的回答here(基于docs)提到:

  

主题消息率超过特定主题订阅者的消息率过高。减少为此主题发送的消息数,不要立即重试发送。