WebSocket到localhost不能在Microsoft Edge上工作



我创建了一个简单的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 - localhost127.0.0.1,实际IP
  • 允许本地主机环回标志-打开和关闭

当尝试与其他机器通信时,此问题不会发生。

这是Edge的缺陷还是我做错了什么?

我有一个类似的问题,但它是在浏览器中实际导航到页面时出现的。我可以使用短语localhost,它工作得很好,但是当我使用我的机器名称时,我不工作。我发现了这个论坛,他们建议你在管理员提示符中运行以下命令:

CheckNetIsolation LoopbackExempt -a -n=Microsoft.MicrosoftEdge_8wekyb3d8bbwe

对我有用。我想你可能也看到了同样的问题。

正如论坛建议的那样,您现在也可以通过打开Edge并导航到"about:flags",然后勾选"允许本地主机环回(这可能会使您的设备处于风险)"在"开发者设置"下。

应该比粘贴随机的东西到你的命令提示符更安全。

Edit:正如tresf在下面指出的那样,about:flags中的环回复选框似乎已经停止工作(作为修复),因此您必须使用CheckNetIsolation命令,以使Edge豁免。

相关内容

  • 没有找到相关文章

最新更新