2012-01-12 58 views
5

我试图在WebWorker内部实现一个可用的WebSocket连接。这应该很简单,而且如果我使用Chrome作为b rowser。然而,因为这个实验应该进一步成为一个产品的一部分,我需要它来处理所有伟大的浏览器,也就是Firefox。使用Firefox的WebWorkers和WebSockets

我的问题是我无法使用Firefox工作。起初Firefox不能创建WebWorker。这是一个Bug,并在版本9中得到修复。但是现在看来它不能在Worker中创建一个WebSocket。

我尝试下面的代码行:

var ws = new WebSocket(url); 

其失败:

WebSocket is not defined 

那么,根据this它应该工作。但它并不在WebWorker中,也不在此范围之外。我尝试了更旧的

var ws = new MozWebSocket(url); 

这似乎在WebWorker的外部工作,但我得到了与上面相同的错误。

现在,有什么问题?我知道WebSockets在某些旧版本中禁用了byy默认设置,但版本9应该支持与Chrome类似的功能(至少这就是他们所说的那样)。那么我做错了什么?

即时通讯使用Ubuntu 11.10,并没有测试其他浏览器呢。

在此先感谢!

+1

这似乎是可能的这是一个Firefox的错误(不使WebSocket对象在WebWorkers中可见)。我会提交一个针对mozilla的错误,并在这里发布回复。 – kanaka 2012-01-12 22:05:30

+0

这终于在[Firefox 38]中修复了(https://bugzilla.mozilla.org/show_bug.cgi?id=504553#c161)。 – 2015-05-19 06:28:46

回答

6

Firefox中的工作人员还没有支持WebSocket。请参阅https://bugzilla.mozilla.org/show_bug.cgi?id=504553

更新:Firefox 35添加了支持。

+0

我明白了。看起来他们似乎也不想做这件事。谢谢。 – j0ker 2012-01-13 09:19:28

+0

'Olli Pettay [:smaug] 2012-10-29 02:00:09 PDT' _这个bug发生了什么?_ 'Andrea Marchesini(:baku)2012-10-29 04:38:29 PDT' 我必须把时间花在编写文档的错误上。我认为最好的方法可以是与某人面对面地检查这个代码,因为这个补丁很大,它改变了太多的代码等等。 – knutole 2013-01-08 09:25:14

+0

我刚刚在这个bugzilla票据上做了一个碰撞504553 – 2014-08-26 18:53:59