WebSocket到localhost无法在Microsoft Edge上运行

时间:2015-08-02 13:53:12

标签: javascript websocket 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错误:网络错误12029,无法建立与服务器的连接

这适用于Edge的 12.10240 版本。

有关here的类似问题,但错误信息不同。

我尝试的事情:

  • IP - localhost127.0.0.1,实际IP
  • 允许localhost环回标志 - 开启和关闭

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

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

1 个答案:

答案 0 :(得分:11)

我遇到了类似的问题,但实际上是在浏览器中导航到页面时。我可以使用localhost这个短语并且工作正常,但是当我使用我的机器名称时,我没有工作。我找到了this forum,他们建议您在管理员提示符中运行以下命令:

CheckNetIsolation LoopbackExempt -a -n=Microsoft.MicrosoftEdge_8wekyb3d8bbwe

为我工作。以为你可能会看到某种形式的同一问题。

正如论坛建议的那样,你现在也可以通过打开Edge并导航到" about:flags "然后勾选" 允许localhost环回(这可能会使您的设备面临风险)"在"开发者设置"。应该感觉比将随机内容粘贴到命令提示符更安全。

编辑:正如tresf在下面指出的那样,about:flags中的loopback复选框似乎已停止工作(作为修复),因此您将使用CheckNetIsolation命令,使Edge免除。