我想在客户端和服务器之间创建两个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。
答案 0 :(得分:0)
所以我想我现在知道这个问题:
不应在混合内容环境中使用WebSockets;也就是说,您不应该从使用HTTPS加载的页面打开非安全的WebSocket连接,反之亦然。实际上,有些浏览器明确禁止这样做,包括Firefox 8及更高版本。
因此,我似乎无法在一个HTML页面上打开两个具有不同安全级别的连接。