- Instale o Tampermonkey no Chrome ou Firefox
- Clique no botão "Raw" ou clique aqui pra instalar o userscript de forma automática
Você também pode clicar no ícone do Tampermonkey, "Adicionar novo script...", colar o conteúdo e depois salvar (CTRL+S)
Você também pode clicar no ícone do Tampermonkey, "Adicionar novo script...", colar o conteúdo e depois salvar (CTRL+S)
// ==UserScript== | |
// @name Ping WebSocket | |
// @namespace https://gist.github.com/FelipeGrijo | |
// @version 1.0 | |
// @description Intercepta o WebSocket e envia mensagens de ping a cada x segundos para manter a conexão aberta | |
// @author Felipe Grijó | |
// @match https://live-chat.stg-eks.descomplica.com.br/chat* | |
// @icon https://icons.duckduckgo.com/ip2/descomplica.com.br.ico | |
// @grant none | |
// @run-at document-start | |
// ==/UserScript== | |
(() => { | |
const PING_INTERVAL_MS = 30 * 1000; | |
const OriginalWebSocket = window.WebSocket; | |
function websocket(url, protocols = []) { | |
const ws = new OriginalWebSocket(url, protocols); | |
let pingInterval = null; | |
ws.addEventListener('open', () => { | |
pingInterval = setInterval(() => { | |
ws.send(JSON.stringify({ type: 'PING' })); | |
}, PING_INTERVAL_MS); | |
}); | |
ws.addEventListener('close', () => clearInterval(pingInterval)); | |
return ws; | |
} | |
window.WebSocket = websocket; | |
window.WebSocket.prototype = OriginalWebSocket.prototype; | |
window.WebSocket.CONNECTING = OriginalWebSocket.CONNECTING; | |
window.WebSocket.OPEN = OriginalWebSocket.OPEN; | |
window.WebSocket.CLOSING = OriginalWebSocket.CLOSING; | |
window.WebSocket.CLOSED = OriginalWebSocket.CLOSED; | |
})(); |