Greasy Fork

WebSocket消息额外监听脚本

在网页已有WebSocket基础上额外监听消息

目前为 2024-12-06 提交的版本。查看 最新版本

// ==UserScript==
// @name WebSocket消息额外监听脚本
// @namespace http://yournamespace.com/
// @version 0.13
// @description 在网页已有WebSocket基础上额外监听消息
// @author Your Name
// @match https://www.milkywayidle.com/*
// @grant none
// @license MIT
// ==/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!');
})();