diffusion
Version:
Diffusion JavaScript client
35 lines (34 loc) • 1.24 kB
JavaScript
;
/**
* @module Activity
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.connectionActivityMonitorFactory = void 0;
var connection_activity_monitor_1 = require("./../activity/connection-activity-monitor");
/**
* The client will wait a maximum of two system ping periods for a ping from the
* server before declaring the connection idle and closing it.
*/
var pingTimeoutFactor = 2;
/**
* A {@link ConnectionActivityMonitor} that does nothing
*/
var noop = {
onSystemPing: function () { },
shutdown: function () { }
};
/**
* Factory for connection activity monitors.
*
* @param connection the connection to be monitored
* @param response the new connection response
*/
function connectionActivityMonitorFactory(connection, response) {
if (!response.systemPingPeriod || response.systemPingPeriod.isNegative() || response.systemPingPeriod.isZero()) {
return noop;
}
var systemPingPeriod = response.systemPingPeriod.toNumber();
var pingTimeout = systemPingPeriod * pingTimeoutFactor;
return new connection_activity_monitor_1.ConnectionActivityMonitorImpl(pingTimeout, connection);
}
exports.connectionActivityMonitorFactory = connectionActivityMonitorFactory;