4

我目前是 firebase 客户,并且在 firebase 中面临这个非常糟糕的性能问题:Firebase 负载性能,其中初始 websocket 握手将整个应用程序的加载延迟一秒或更长时间。

我很好奇 goinstant 是否解决了这个问题?这个想法是你先做一个传统的 xhr,然后在建立连接时换成 websockets。

4

2 回答 2

5

这正是 GoInstant 所做的。它以 XHR 连接开始,然后尝试升级到 websocket(如果可用)。

于 2014-05-12T22:26:00.830 回答
5

通常 Firebase 以 websocket 开头。经过测量,我们发现它通常更可靠并且具有更好的性能特征,尤其是对于上传。但是,如果 websocket 不可用或失败,客户端将使用长轮询。XHR 请求有一些缺点。它们并不总是跨域可用,如果您打开多个选项卡与同一服务器通信,某些浏览器会限制可用的套接字,迫使选项卡轮流轮询。

如果需要,您可以通过调用 Firebase.INTERNAL.forceLongPolling() 来强制 Firebase 使用长轮询;

关于链接的问题,我们将调查发生了什么(如果您还没有,请在 firebase.com 发送电子邮件支持),因为这些测量值肯定高于应有的值并且有些不典型。

于 2014-05-12T23:10:36.940 回答