我正试图在WebWorker中实现一个可工作的WebSocket连接。这应该很简单,如果我使用Chrome作为浏览器的话。然而,由于这个实验应该进一步成为产品的一部分,我需要它来处理所有伟大的浏览器,也就是Firefox。
我的问题是我无法让它与Firefox一起工作。起初Firefox无法创建WebWorker。这是一个Bug,已在版本9中修复。但现在看来,它将无法在Worker中创建WebSocket。
我尝试了以下代码行:
var ws = new WebSocket(url);
失败的原因:
WebSocket is not defined
好吧,根据这一点,它应该起作用。但无论是在WebWorker内部还是在此上下文之外,它都不是。我试过旧的
var ws = new MozWebSocket(url);
它似乎在WebWorker之外工作,但我在它内部得到了与上面相同的错误。
现在,问题出在哪里?我知道WebSockets在一些旧版本中被默认禁用,但版本9应该支持与Chrome类似的功能(至少他们是这么说的)。那么我是不是做错了什么?
我使用的是Ubuntu 11.10,还没有测试其他浏览器。
提前感谢!
Firefox中的worker还不支持WebSocket。看见https://bugzilla.mozilla.org/show_bug.cgi?id=504553
更新:Firefox 35增加了支持。