Это немного глупо, но если вы можете внедрить код, который запускается раньше, чем код сайта (например, с помощью Tampermonkey и @run-at document-start
), вы можете установить monkeypatch window.WebSocket
, чтобы при каждом вызове вы добавляли созданный веб-сокет в массив, который вы можете проверить позже. Например, если выполнить следующее при переполнении стека:
// ==UserScript==
// @name 0 New Userscript
// @include /^https://stackoverflow.com
// @run-at document-start
// @grant none
// ==/UserScript==
const sockets = [];
const nativeWebSocket = window.WebSocket;
window.WebSocket = function(...args){
const socket = new nativeWebSocket(...args);
sockets.push(socket);
return socket;
};
setTimeout(() => {
// or create a button which, when clicked, does something with the sockets
console.log(sockets);
}, 1000);
приводит к регистрации [WebSocket]
(и вы можете продолжать делать все, что вы хотели сделать с экземпляром, например, вызов emit
).