diffusion
Version:
Diffusion JavaScript client
47 lines (46 loc) • 1.59 kB
JavaScript
;
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;