UNPKG

diffusion

Version:

Diffusion JavaScript client

51 lines (46 loc) 1.54 kB
/*eslint valid-jsdoc: "off"*/ /** * Activity monitor for session. * @param connectionActivityMonitorFactory Factory for connection activity monitors */ function SessionActivityMonitor(connectionActivityMonitorFactory) { var currentConnectionMonitor = null; /** * Called when a new connection has been opened by the session. * @param connection The new connection * @param response The new connection response */ this.onNewConnection = function(connection, response) { currentConnectionMonitor = connectionActivityMonitorFactory(connection, response); }; /** * Called when the current connection has been closed, either cleanly or because of a problem. */ this.onConnectionClosed = function() { if (currentConnectionMonitor !== null) { currentConnectionMonitor.shutdown(); currentConnectionMonitor = null; } }; /** * Called when a system ping is received from the server. */ this.onSystemPing = function() { if (currentConnectionMonitor !== null) { currentConnectionMonitor.onSystemPing(); } }; } module.exports = { /** * Null object implementation of Session activity monitor. */ NOOP : { onNewConnection : function() {}, onConnectionClosed : function() {}, onSystemPing : function() {} }, create : function(connectionActivityMonitorFactory) { return new SessionActivityMonitor(connectionActivityMonitorFactory); } };