我们目前正在使用 Firebase 消息传递向 React Native 应用程序(iOS 和 Android)中特定屏幕上的所有活跃用户发送主题数据消息。在临时环境中测试行为时,我们没有出现太多明显的延迟,甚至在生产环境中的一些流量较低的区域中使用它,延迟处于可接受的低水平(通常< 1 second, but never more than a couple seconds). Now we're trying to use this same feature for a heavier traffic use case (a few thousand concurrent active users) and are seeing some pretty heavy latency between sending the message and the end users actually receiving the message (at least a dozen seconds, sometimes well over a minute).
我知道 Firebase 主题消息“针对吞吐量而不是延迟进行了优化”(来自此处),但我认为(可能是错误的)我们在较低流量用例中看到的几秒延迟是典型的,而不是它会随着活跃用户的增加而增加。是否有任何文档描述 Firebase 主题消息的预期延迟范围?我们试图避免跟踪所有用户向我们自己发送直接消息所需的开销,这就是我们将消息发送到主题的原因。
关于此用例的更多信息:
如果服务拥塞(与项目无关),FCM 可能会从几乎即时到长达一个小时或更长时间不等。有些人已经在时间关键的应用程序中找到了近乎即时消息的合适替代方案。
一些流行的替代方案:https://onesignal.com/、https://pushy.me/
注意: OneSignal 依赖 FCM 在 Android 上传递通知,因此 FCM 可能仍会限制通知。