我创建了一个简单的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 Error: Network Error 12029, A connection with server could not be established
Edge的12.10240版本发生这种情况。
这里也有类似的问题,但错误信息不同。
我尝试过的事情:
- IP -
localhost
、127.0.0.1
,实际IP - 允许本地主机环回标志-打开和关闭
当尝试与其他机器通信时,此问题不会发生。
这是Edge的缺陷还是我做错了什么?
我有一个类似的问题,但它是在浏览器中实际导航到页面时出现的。我可以使用短语localhost,它工作得很好,但是当我使用我的机器名称时,我不工作。我发现了这个论坛,他们建议你在管理员提示符中运行以下命令:
CheckNetIsolation LoopbackExempt -a -n=Microsoft.MicrosoftEdge_8wekyb3d8bbwe
对我有用。我想你可能也看到了同样的问题。
正如论坛建议的那样,您现在也可以通过打开Edge并导航到"about:flags",然后勾选"允许本地主机环回(这可能会使您的设备处于风险)"在"开发者设置"下。
Edit:正如tresf在下面指出的那样,about:flags中的环回复选框似乎已经停止工作(作为修复),因此您必须使用CheckNetIsolation命令,以使Edge豁免。