ws-heartbeat
Version:
Server-side and client-side heartbeat library for ws and browser-side Websocket.
41 lines (40 loc) • 1.14 kB
JavaScript
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;
;