如何在Google Chrome中调试无法连接的WebSocket?

4
我想从 Web 应用程序连接到我们企业平台上的服务器上的 WebSocket。为此,我创建了一个简单的前端和一个简单的 WebSocket 服务器来尝试一些东西。 不幸的是,该应用程序在 Google Chrome 中无法工作,但在 Firefox 中可以正常工作。我也可以通过 Postman 正确连接到 WebSocket。 这是我用来连接 WebSocket 的代码行:
const socket = new WebSocket("wss://<host>/ws");

然后我会得到一个控制台错误,看起来像这样:

WebSocket connection to 'wss://<host>/ws' failed:

没有提到发生了什么问题,错误事件对象中也没有其他信息。检查socket显示预期的readyState=3

enter image description here

我尝试通过以调试日志的方式启动Chrome来获取额外的日志,就像这样:

/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --enable-logging --v=9

但是我只看到与错误相关的以下行,没有更多了。

[VERBOSE1:network_delegate.cc(34)] NetworkDelegate::NotifyBeforeURLRequest: wss://<host>/ws

Chrome 版本:

Google Chrome   99.0.4844.51 (Official Build) (x86_64) 
Revision    d537ec02474b5afe23684e7963d538896c63ac77-refs/branch-heads/4844@{#875}
OS  macOS Version 12.2.1 (Build 21D62)
JavaScript  V8 9.9.115.8

我该如何调试这个失败的WebSocket连接?为什么它在Firefox中可以工作但在Chrome中却不行?

非常感谢!

1个回答

2

抱歉回复晚了,也许这可以帮助你:

我曾经遇到同样的问题,实际解决方案是为试图与服务器建立websocket连接的网站禁用广告拦截器。

也许你的广告拦截器只安装在Chrome上,因此在Firefox和Postman上工作。


@wilco 这个答案被接受了吗?我也在一些没有安装广告拦截器的机器上遇到过这个问题。 - user3389171

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接