Elethor WebSocket override for window hook

Overrides the WebSocket class and hooks any new instance of a WebSocket to a window.socket reference

Versão de: 08/01/2021. Veja: a última versão.

// ==UserScript==
// @name         Elethor WebSocket override for window hook
// @description  Overrides the WebSocket class and hooks any new instance of a WebSocket to a window.socket reference
// @namespace    https://www.elethor.com/
// @version      0.0.4
// @author       Anders Morgan Larsen (Xortrox)
// @match        https://elethor.com/
// @match        https://www.elethor.com/
// @grant        none
// ==/UserScript==

(function(){
    const moduleName = 'Elethor WebSocket Hook';
    console.log(`[${moduleName}] Loaded.`);

    Hook();

    /** 
     * Replaces the class reference of "WebSocket" with a function that binds any new instance to "window.socket"
     * This has no impact on the WebSocket class itself.
     */
    function Hook() {
        const OldSocket = WebSocket;

        window.WebSocket = function () {
            console.log(`[${moduleName}] WebSocket hook successful.`);
            const socket = new OldSocket(...arguments);
            window.socket = socket;

            return socket;
        }
    };
})();
长期地址
遇到问题?请前往 GitHub 提 Issues。