首页 > 解决方案 > 如何拦截 WebSocket 数据?

问题描述

在 Firefox 57 中,您可以拦截http 请求的主体以及响应(使用filterResponseData)。是否可以对 Web 套接字执行相同的操作?

标签: firefox-addon-webextensions

解决方案


我不认为你可以使用 API 来查看 WebSocket 通信。

webRequestAPI 仅适用于 WebSocket 握手,仍然是普通的 HTTP。但是一旦 HTTP 升级完成,API 将无法再观察到它。

引用Chrome 上的相关错误修复

在 WebRequest API 中支持 WebSocket。

此 CL 使 WebRequest API 支持拦截 WebSocket 握手请求。由于握手是通过 HTTP 升级请求完成的,因此其流程适合面向 HTTP 的 WebRequest 模型。附加限制适用,即忽略由扩展触发的 WS 请求重定向。

请注意,WebRequest API 不会拦截

  • 通过已建立的 WebSocket 连接发送的单个消息。
  • WebSocket 关闭连接

由于 Mozilla 通常会尝试遵循 Chrome 扩展,因此我希望 Firefox 的行为应该相同。


推荐阅读