UNPKG

diffusion

Version:

Diffusion JavaScript client

47 lines (46 loc) 1.59 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ConnectionActivityMonitorImpl = void 0; /** * Implementation of {@link ConnectionActivityMonitor} */ var ConnectionActivityMonitorImpl = /** @class */ (function () { /** * Create a new ConnectionActivityMonitor instance * * @param pingTimeout timeout for pings in milliseconds * @param connection the connection being monitored */ function ConnectionActivityMonitorImpl(pingTimeout, connection) { /** * The handle to the current timeout callback */ this.currentTimeout = null; this.pingTimeout = pingTimeout; this.connection = connection; this.currentTimeout = setTimeout(connection.closeIdleConnection.bind(connection), pingTimeout); } /** * @inheritdoc */ ConnectionActivityMonitorImpl.prototype.onSystemPing = function () { var _this = this; if (this.currentTimeout !== null) { clearTimeout(this.currentTimeout); this.currentTimeout = setTimeout(function () { _this.connection.closeIdleConnection(); }, this.pingTimeout); } }; /** * @inheritdoc */ ConnectionActivityMonitorImpl.prototype.shutdown = function () { if (this.currentTimeout !== null) { clearTimeout(this.currentTimeout); this.currentTimeout = null; } }; return ConnectionActivityMonitorImpl; }()); exports.ConnectionActivityMonitorImpl = ConnectionActivityMonitorImpl;