有没有办法通过 Chrome 的开发者工具网络选项卡禁用 Web 套接字连接或结束 Web 套接字连接?
我注意到,将网络选项卡下的限制设置为 Offline 不会影响已建立的 Web 套接字连接。它只是阻止传统的 HTTP 请求出去。
有一个问题here与此相关,但它已经过时了。
从 Chrome 99 开始支持:https://developer.chrome.com/blog/new-in-devtools-99/#websocket
不,无法从“网络”面板禁用或关闭连接。来源:DevTools 工程师。
但是,如果您有 WS 连接的引用,则可以使用其 JS API 通过控制台关闭它。
您可以在 Chrome 的 Net Internals 页面中关闭空闲并刷新不活动的套接字池。然而,不幸的是,从表面上看,这只会关闭您的活动套接字。
chrome://net-internals/#sockets
您必须使用 WebSockets API 并在对现有套接字的引用上调用
close()
来显式关闭它。否则,我能想到的就是用活动套接字杀死进程。
试试这个,它是我通过数小时挖掘我遇到的类似问题而产生的。似乎适合我按需关闭“现有”连接。
此方法类似于另一篇建议从 console.dir() 中提取引用的文章。我不知道为什么 - 但 console.dir() 方法对我不起作用。但这个堆引用却做到了。添加作为替代方案。
类似于@Tomi Heiskanen 的答案,但不需要从代码中登录。 在 devtools 控制台中,您可以使用
queryObjects
获取对 WebSocket 的引用 (https://developer.chrome.com/docs/devtools/console/utilities#queryObjects-function)。
查询对象(WebSocket)
这将在控制台上打印所有创建的构造函数为 WebSocket 的对象。
(以下步骤与@Tomi Heiskanen的回答相同)
然后你可以右键单击你想要使用的 websocket(如果你有很多),然后
Store object as global variable
,这会创建一些变量并再次将其打印在控制台上(例如 temp1)。
最后,你可以执行 temp1.close()。