【问题标题】:WebSocket to localhost not working on Microsoft Edge到 localhost 的 WebSocket 在 Microsoft Edge 上不起作用
【发布时间】: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 - localhost127.0.0.1,实际IP
  • 允许本地主机环回标志 - 开启和关闭

当尝试与另一台机器通信时,不会出现问题。

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

【问题讨论】:

  • 向微软报告错误?
  • @Jan 我发送了反馈但同时我想确保我没有遗漏一些明显的东西(我对 WebSockets 没有太多经验)
  • 也许吧,但这对我来说确实是个错误。
  • 这不是错误。这一切都与loopback 有关。当您连接到不同的 IP(不是 localhost::1127.0.0.1)时,该 IP 通常不被视为 loopback 尝试,因此需要 CheckNetIsolation,这是特定于 @987654332 @ 应用程序(Edge 是一个 ModernUI 应用程序)。在环回连接方面,这只是 IE11 和 Edge 的众多陷阱之一。在域网络上,由于域上Local Intranet Zone的定义发生了变化,调用CheckNetIsolation后仍然会阻塞连接。

标签: javascript websocket microsoft-edge


【解决方案1】:

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

CheckNetIsolation LoopbackExempt -a -n=Microsoft.MicrosoftEdge_8wekyb3d8bbwe

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

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

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

【讨论】:

  • 在最新版本的 Edge 中,环回标志现在似乎默认启用,但无论如何似乎都需要CheckNetIsolation 修复。
  • @QZSupport 我遇到了类似的问题,“CheckNetIsolation”为我解决了这个问题。它有什么作用?
  • @Sanich 来自 MS 的解释是“Edge 作为与 IE 不同的 Windows 现代应用程序运行,因此出于安全原因,默认情况下它具有网络隔离。”。另请注意,如果在域中,本地 Intranet 区域中的“自动检测设置”在 IE 中可能会产生类似的效果。 blogs.msdn.microsoft.com/msgulfcommunity/2015/07/01/…
  • @QZSupport 谢谢!单独启用环回标志并不能解决问题而“CheckNetIsolation”可以解决问题的原因可能是什么?
  • @Sanich,您的问题最好针对 Edge 开发人员,但 Microsoft 博客文章解释了对所有 ModernUI 应用程序(不仅仅是边缘)施加的环回限制,从而使 Edge 复选框而不是多余的。此外,域环境将“本地 Intranet 区域”与工作站计算机不同,因此将 WebSocket 解析/故障排除到 Edge 和 IE 上的 localhost 是一个晦涩且相当无证的过程。
猜你喜欢
  • 1970-01-01
  • 2015-11-30
  • 2020-03-07
  • 1970-01-01
  • 1970-01-01
  • 2019-02-14
  • 1970-01-01
  • 2020-12-28
  • 2019-06-15
相关资源
最近更新 更多