【发布时间】:2015-08-02 13:53:12
【问题描述】:
我创建了一个简单的 WebSocket 服务器并尝试使用以下代码连接到它:
function test(name) {
var ws = new WebSocket('ws://localhost:1234');
ws.onopen = function () {
ws.send('Hello from ' + name);
}
}
test('Edge');
这在 Windows10 上的 Chrome 和 IE11 上运行良好,但是当我从 Edge 尝试时,onopen 函数没有被调用,而是我最终收到以下错误:
SCRIPT12029:WebSocket 错误:网络错误 12029,无法建立与服务器的连接
Edge 的 12.10240 版本会发生这种情况。
有人问过关于here 的类似问题,但错误消息不同。
我尝试过的事情:
-
IP -
localhost,127.0.0.1,实际IP - 允许本地主机环回标志 - 开启和关闭
当尝试与另一台机器通信时,不会出现问题。
这是 Edge 的缺陷还是我做错了什么?
【问题讨论】:
-
向微软报告错误?
-
@Jan 我发送了反馈但同时我想确保我没有遗漏一些明显的东西(我对 WebSockets 没有太多经验)
-
也许吧,但这对我来说确实是个错误。
-
这不是错误。这一切都与
loopback有关。当您连接到不同的 IP(不是localhost、::1或127.0.0.1)时,该 IP 通常不被视为loopback尝试,因此需要CheckNetIsolation,这是特定于 @987654332 @ 应用程序(Edge 是一个 ModernUI 应用程序)。在环回连接方面,这只是 IE11 和 Edge 的众多陷阱之一。在域网络上,由于域上Local Intranet Zone的定义发生了变化,调用CheckNetIsolation后仍然会阻塞连接。
标签: javascript websocket microsoft-edge