【发布时间】:2013-12-27 17:57:13
【问题描述】:
我正在开发一个简单的公司 AngularJS 应用程序,并计划使用 Firebase 作为后端。
我必须支持的浏览器是 IE8 和 Chrome(最新)。
我已经设法在前端修复了所有与 IE 相关的怪癖,并且可以成功地从我的 Firebase 中检索数据。由于 IE8 不支持 WebSockets,我认为它使用的是长轮询。 (这在性能方面很好,应用程序非常简单,只需拉取/更新两到三条数据)。
自相矛盾的是,我在 Chrome 中反复看到以下错误,并且无法连接到 Firebase。我假设这是由于公司网络的防火墙/代理造成的。
WebSocket connection to 'wss://xxx.firebaseio.com/.es?v=5' failed: WebSocket is closed before the connection is established.
我无法控制防火墙/代理,所以我的问题是我是否可以强制 Chrome 也使用长轮询,在创建 Firebase 引用时使用某种配置标志?
我混合使用 Angularfire 和直接 Firebase。该应用程序在 IE 中完美运行,因此我的代码似乎没有任何问题。 (简单的测试脚本也会遇到同样的问题)
更新:该应用程序在 Chrome 中无法运行(因此我的问题是),所以也许这是我应该使用 Firebase 提出的一个错误,但无论如何强制长轮询的方法都会(大概)修复我的问题。
【问题讨论】:
-
如果 WebSockets 不起作用,Firebase 应该自动退回到长轮询,因此控制台错误应该是无害的。应用还能用吗?
-
Anant:它不会依赖 Chrome 中的长轮询。 (所以我不是这种情况stackoverflow.com/questions/12421993/…)
标签: javascript websocket firebase angularfire