javascript - WebSocket 到本地主机在 Microsoft Edge 上不起作用

标签 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 Error: Network Error 12029, A connection with the server could not be established

Edge 的 12.10240 版本正在发生这种情况。

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

我尝试过的事情:

  • IP - localhost, 127.0.0.1, 实际IP
  • 允许本地主机环回标志 - 打开和关闭

当尝试与不同的机器通信时,问题不会发生。

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

最佳答案

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

CheckNetIsolation LoopbackExempt -a -n=Microsoft.MicrosoftEdge_8wekyb3d8bbwe

为我工作。认为您可能会遇到某种形式的相同问题。

正如论坛所建议的那样,您现在也可以通过打开 Edge 并导航到“about:flags”来执行此操作,然后勾选“允许本地主机环回(这可能会使您的设备存在风险)”下的“开发者设置”。应该比将随机内容粘贴到命令提示符中更安全一些。

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

关于javascript - WebSocket 到本地主机在 Microsoft Edge 上不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31772564/

相关文章:

javascript - 将 HTML 输入限制为固定长度数字

python - 从Python中无限循环的异步函数返回结果

angular - 在 IE11 和 Edge 中的 Bootstrap 模态上渲染 Artifact

javascript - 使用 Mongoose findOne 的函数返回未定义?

javascript - Window Active Directory React JS 自动身份验证

javascript - 由于硬件限制,哪些旧版浏览器仍在使用?

scala - 从 socko 迁移到 akka-http websockets

javascript - Mojolicious:我应该使用一个还是多个 websocket?

internet-explorer - MS Edge 和 IE 11 不支持 html5 视频元素

jquery - 对象不支持属性或方法 'closest'