UNPKG

diffusion

Version:

Diffusion JavaScript client

35 lines (34 loc) 1.24 kB
"use strict"; /** * @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;