diffusion
Version:
Diffusion JavaScript client
34 lines (29 loc) • 947 B
JavaScript
/*eslint valid-jsdoc: "off"*/
/**
* Activity monitor for connection.
* @param pingTimeout Timeout for pings in milliseconds
* @param connection The connection being monitored
*/
function ConnectionActivityMonitor(pingTimeout, connection) {
var currentTimeout = null;
/**
* Called when a system ping is received from the server.
*/
this.onSystemPing = function() {
if (currentTimeout !== null) {
clearTimeout(currentTimeout);
currentTimeout = setTimeout(connection.closeIdleConnection.bind(connection), pingTimeout);
}
};
/**
* Shutdown the monitor.
*/
this.shutdown = function() {
if (currentTimeout !== null) {
clearTimeout(currentTimeout);
currentTimeout = null;
}
};
currentTimeout = setTimeout(connection.closeIdleConnection.bind(connection), pingTimeout);
}
module.exports = ConnectionActivityMonitor;