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)