是否可以在FireFox / Safari中创建多个WebSockets?

时间:2013-11-21 13:45:53

标签: javascript html5 firefox safari websocket

我想在客户端和服务器之间创建两个WebSocket连接。第一个连接用于将时间关键应用程序的纯文本发送到端口1337.第二个连接应该用于通过端口443上的tls进行安全数据传输。我使用以下代码创建两个WebSockets:

var ip  = document.URL.split("/")[2].split(":")[0];
var wss = new WebSocket("wss://" + ip + ":443"); //secure
var ws  = new WebSocket("ws://"  + ip + ":1337"); //realtime

嗯,在Chrome和Opera中运行它就像一个魅力。但是当我在FF中测试它时,它似乎建立了第一个(安全)连接,并且当涉及第二个时,中止所有代码执行。在Safari中,我收到一条错误消息,表明服务器已关闭连接,尽管它仍在运行。在这两种情况下,它都通过https下载html页面和css等,但此时javascript执行失败。

有人知道这个问题吗?如上所述,在Chrome和Opera中一切正常。我还没有测试过IE。

1 个答案:

答案 0 :(得分:0)

所以我想我现在知道这个问题:

  

不应在混合内容环境中使用WebSockets;也就是说,您不应该从使用HTTPS加载的页面打开非安全的WebSocket连接,反之亦然。实际上,有些浏览器明确禁止这样做,包括Firefox 8及更高版本。

https://developer.mozilla.org/en-US/docs/WebSockets/Writing_WebSocket_client_applications#Security_considerations

因此,我似乎无法在一个HTML页面上打开两个具有不同安全级别的连接。