use*_*254 6 websocket google-chrome-extension
有一个页面(游戏),该页面通过WebSocket与服务器通信。我可以在Chrome开发者工具中查看数据(框架)。是否可以通过chrom-extension访问/修改此通信?
目前,访问的唯一途径或修改的WebSocket流量使用内容脚本来注入一个脚本,它取代了WebSocket用自己的包装构造。该包装器的行为应与原始WebSocket实现类似,但是您可以添加更多内容,例如将已发送/已接收的消息记录到扩展中。
为防止站点损坏,您必须确保WebSocket包装器完全符合标准。在http://www.whatwg.org/specs/web-apps/current-work/multipage/network.html#the-websocket-interface上记录了必须实现的接口。
有关如何包装DOM构造函数的启发,请参见例如我的包装器Worker。您可以随意重用部分代码(例如,EventTarget接口的实现,这也是WebSocketAPI 的要求)。
更多重点:确保您的实现遵循标准WebSocket API的接口,否则您可能会破坏某些站点!
好像 错误已修复且可用。在 manifest.json 中,您需要明确指定权限
{
...
"permissions": ["webRequest", "ws://*/*", "wss://*/*"]
...
}
Run Code Online (Sandbox Code Playgroud)
并且在网络过滤器中它应该被指定为一个 websocket 请求。
const networkFilters = {
urls: [
"wss://echo.websocket.org/*"
]
};
chrome.webRequest.onBeforeRequest.addListener((details) => {
const { tabId, requestId } = details;
// do stuff here
}, networkFilters);
Run Code Online (Sandbox Code Playgroud)
小智 5
有一个WebSocket-Wrapper,您可以使用它来访问WebSocket流量:
https://github.com/gorhill/chromium-websocket-wrapper/blob/master/chromium-websocket-wrapper.js