我目前是firebase客户,在firebase中遇到了这个非常糟糕的性能问题:Firebase load performance初始的websocket握手会将整个应用程序的加载延迟一秒或更长时间。
我很好奇,如果goinstant解决了这个问题?我们的想法是先创建一个传统的xhr,然后在建立连接时交换到websockets。
答案 0 :(得分:5)
这正是GoInstant所做的。它以XHR连接开始,然后尝试升级到websocket(如果可用)。
答案 1 :(得分:5)
通常,Firebase以websocket开头。经过测量,我们发现它通常更可靠,性能更好,特别是对于上传。但是,如果websockets不可用或失败,客户端将使用长轮询。 XHR请求有一些缺点。它们并不总是跨域可用,并且如果您打开与同一服务器通信的多个选项卡,则某些浏览器将限制可用套接字,强制选项卡轮流轮询。
如果需要,您可以通过调用Firebase.INTERNAL.forceLongPolling()强制Firebase使用长轮询;
关于链接的问题,我们将调查发生的事情(如果您还没有,请发送电子邮件至firebase.com支持),因为这些测量结果肯定高于它们应该是的并且有点不典型。