// ==UserScript== // @name WebSocket消息额外监听脚本 // @namespace http://yournamespace.com/ // @version 0.13 // @description 在网页已有WebSocket基础上额外监听消息 // @author Your Name // @match https://www.milkywayidle.com/* // @grant none // @license MIT // @downloadURL none // ==/UserScript== (function () { 'use strict'; // 保存原始的 WebSocket 构造函数 const OriginalWebSocket = window.WebSocket; // 创建一个 Map 存储所有 WebSocket 实例 const wsInstances = new Map(); // 重写 WebSocket 构造函数 window.WebSocket = function (...args) { const ws = new OriginalWebSocket(...args); wsInstances.set(ws, args); // 保存 WebSocket 实例和参数 // 监听消息事件 ws.addEventListener('message', (event) => { console.log('WebSocket Message:', event.data); }); // 可以在这里添加更多拦截逻辑,例如发送数据时 ws.addEventListener('open', () => { console.log('WebSocket Opened:', args[0]); }); ws.addEventListener('close', () => { console.log('WebSocket Closed:', args[0]); wsInstances.delete(ws); // 移除关闭的 WebSocket }); return ws; }; // 保留 WebSocket 的其余属性和方法 window.WebSocket.prototype = OriginalWebSocket.prototype; console.log('WebSocket hijacking initialized!'); })();