diff --git a/src/templates/save.eta b/src/templates/save.eta index 71db2ab..3224f91 100644 --- a/src/templates/save.eta +++ b/src/templates/save.eta @@ -47,6 +47,7 @@ const sitekey = "<%= it.sitekey %>" const initialRateLimitId = "<%= it.rateLimitId %>" let ws = null + let keepAliveInterval = null const h1 = document.getElementById("title") const h3 = document.getElementById("bottom") const captcha = document.getElementById("captcha") @@ -110,6 +111,9 @@ } ws.onclose = function (event) { + if (keepAliveInterval) { + clearInterval(keepAliveInterval) + } h3.innerHTML = `Websocket connection was closed: ${event.reason} (${event.code})
${h3.innerHTML}` } } @@ -162,7 +166,7 @@ }) } - setInterval(() => { + keepAliveInterval = setInterval(() => { if (!ws || ws.readyState !== WebSocket.OPEN) { return } diff --git a/src/templates/savechannel.eta b/src/templates/savechannel.eta index 8ea5c77..7a6f655 100644 --- a/src/templates/savechannel.eta +++ b/src/templates/savechannel.eta @@ -65,11 +65,17 @@ h1.innerHTML = text } + let keepAliveInterval ws.onclose = function (event) { + clearInterval(keepAliveInterval) h3.innerHTML = `Websocket connection was closed: ${event.reason} (${event.code})
${h3.innerHTML}` } - setInterval(() => { + keepAliveInterval = setInterval(() => { + if (!ws || ws.readyState !== WebSocket.OPEN) { + return + } + ws.send('alive') }, 2000)