【问题标题】:Is it possible to create multiple WebSockets in FireFox / Safari?是否可以在 FireFox / Safari 中创建多个 WebSocket?
【发布时间】:2013-11-25 17:52:05
【问题描述】:

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

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。

【问题讨论】:

    标签: javascript html firefox safari websocket


    【解决方案1】:

    所以我想我现在知道这有什么问题了:

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

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

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

    【讨论】:

      猜你喜欢
      • 2023-04-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-17
      • 2015-11-30
      相关资源
      最近更新 更多