UNPKG

ws-heartbeat

Version:

Server-side and client-side heartbeat library for ws and browser-side Websocket.

41 lines (40 loc) 1.14 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.setWsHeartbeat = void 0; function setWsHeartbeat(ws, pingMessage, option) { var pingInterval = 25000; var pingTimeout = 60000; if (option) { if (typeof option.pingInterval === "number") { pingInterval = option.pingInterval; } if (typeof option.pingTimeout === "number") { pingTimeout = option.pingTimeout; } } var messageAccepted = false; ws.addEventListener("message", function (e) { messageAccepted = true; }); var pingTimer = setInterval(function () { try { ws.send(pingMessage); } catch (_) { // do nothing } }, pingInterval); var timeoutTimer = setInterval(function () { if (!messageAccepted) { ws.close(); } else { messageAccepted = false; } }, pingTimeout); ws.addEventListener("close", function (e) { clearInterval(pingTimer); clearInterval(timeoutTimer); }); } exports.setWsHeartbeat = setWsHeartbeat;