TOPICS_MESSAGE_RATE_EXCEEDED在短时间内发送多个消息时



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

我有三台Android设备,我正试图在短时间内(一秒钟)向一个主题发送多个下游消息(这三台设备都订阅了)。我们的服务器对它们三个进行ACK。

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

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

以前有人遇到过这个问题吗?如何解决这个问题?

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

我认为这是GCM/FCM对抗洪水的安全网,也是关于处理交通的。想象一下如果你有1000个订阅者,那么你在不到一秒的时间内向该主题发送多个多条消息。

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

@Eran的回答也提到了(这是基于文档):

Topics Message Rate Exceeded发送给特定主题订阅者的消息率过高。减少针对此主题发送的消息数,并且不要立即重试发送。

最新更新