Chrome - 禁用Web套接字或关闭Web套接字连接?

Llo*_*nks 34 google-chrome google-chrome-devtools

有没有办法通过Chrome的开发人员工具网络选项卡禁用Web套接字连接或结束Web套接字连接?

我注意到,将网络选项卡下的限制转换为脱机不会影响已经建立的Web套接字连接.它只能阻止传统的HTTP请求外出.

这里有一个与相关的问题,但它已经过时了.

Kay*_*ues 13

不,无法从"网络"面板禁用或关闭连接.资料来源:DevTools工程师.

但是,如果您有对WS连接的引用,则可以使用其JS API通过控制台关闭它.

  • 这是优先次序的问题.DevTools工程师在此[评论](https://bugs.chromium.org/p/chromium/issues/detail?id=746576#c16)中说现有的离线实现不会影响Web套接字连接,而且它不是一个简单的修复.如果很多DevTools用户请求该功能,团队将重新考虑专用资源来修复它. (3认同)
  • 遗憾的是,新引入的支持是部分的:限制[似乎不适用于现有连接中的消息](https://bugs.chromium.org/p/chromium/issues/detail?id=423246#c104) (3认同)
  • 这里的技术限制是什么?没有任何进一步的知识,我想很容易让离线按钮完全禁用任何网络通信 (2认同)
  • 通过提供如何查找 WebSocket 引用并通过其 JavaScript API 关闭 WebSocket 连接的示例,可以改进此答案。 (2认同)
  • [现已支持](https://bugs.chromium.org/p/chromium/issues/detail?id=423246) (2认同)

K13*_*K13 7

试试这个,它是我对类似问题进行数小时挖掘而产生的。似乎适合我根据需要关闭“现有”连接。

  1. Chrome 开发工具 -> 内存选项卡 -> 拍摄快照
  2. 完成后,在摘要选项卡上搜索快照“websocket”
  3. 展开结果,可能有几个。通常,您想要的那个是在预览中具有正确的 websocket url 字段的那个(当您将鼠标悬停在条目上时)
  4. 选择它,右键单击并“存储为全局变量”
  5. 在底部打开的控制台中,对存储连接的临时变量执行 .close()。可能是“temp1.close()”。

这种方法类似于另一篇建议从 console.dir() 中提取引用的文章。我不知道为什么 - 但 console.dir() 方法对我不起作用。但这个堆引用却做到了。添加作为替代方案。


Gid*_*zer 5

您可以在Chrome的Net Internals页面中关闭空闲和刷新非活动套接字池.但是,不幸的是,这只会通过它的外观关闭你的活动套接字.

chrome://net-internals/#sockets
Run Code Online (Sandbox Code Playgroud)

Web套接字

您必须使用WebSockets API并调用close()对现有套接字的引用以显式关闭它.否则,我可以想到用活动套接字杀死进程.