Intercepting WebSocket messages from worker

95 views Asked by At

There is a site where the worker opens a WebSocket connection, how can I intercept requests from the worker from the browser console?

window.WebSocket doesn't change function in workers

function listen(fn){
    fn = fn || console.log;

    let property = Object.getOwnPropertyDescriptor(MessageEvent.prototype, "data");

    const data = property.get;

    // wrapper that replaces getter
    function lookAtMessage() {

        let socket = this.currentTarget instanceof WebSocket;

        if (!socket) {
            return data.call(this);
        }

        let msg = data.call(this);

        Object.defineProperty(this, "data", { value: msg } );
        fn({ data: msg, socket:this.currentTarget, event:this });
        return msg;
    }

    property.get = lookAtMessage;

    Object.defineProperty(MessageEvent.prototype, "data", property);
}

listen( ({data}) => console.log(data))

I tried this but it doesn't intercept WebSocket from Worker

0

There are 0 answers