lib/Connection.js
function(params, callback) {
      callback = callback || function(){};
      var t = this,
          errorText = '',
          router = Monitor.getRouter(),
          probeId = params.probeId,
          monitorProxy = t.incomingMonitorsById[probeId],
          firewall = t.get('firewall'),
          logCtxt = null,
          probe = null;

      // Already disconnected
      if (!monitorProxy || !monitorProxy.probe) {
        return callback(null);
      }

      // Get a good logging context
      probe = monitorProxy.probe;
      logCtxt = {
        probeClass: monitorProxy.get('probeClass'),
        initParams: monitorProxy.get('initParams'),
        probeId: probeId
      };

      // Called upon disconnect (internal or external)
      var onDisconnect = function(error) {
        if (error) {
          log.error(t.logId + 'probeDisconnect', error);
          return callback(error);
        }
        var duration = logCtxt.duration = Date.now() - probe.connectTime;
        probe.off('change', monitorProxy.probeChange);
        monitorProxy.probe = monitorProxy.probeChange = null;
        delete t.incomingMonitorsById[probeId];
        log.info(t.logId + 'probeDisconnected', logCtxt);
        stat.time(t.logId + 'probeDisconnected', duration);
        return callback(null);
      };

      // Disconnect from an internal or external probe
      if (probe && probe.connection) {
        router.disconnectExternal(probe.connection, probeId, onDisconnect);
      } else {
        router.disconnectInternal(probeId, onDisconnect);
      }
    }
function(params, callback) {
      callback = callback || function(){};
      var t = this,
          errorText = '',
          router = Monitor.getRouter(),
          probeId = params.probeId,
          monitorProxy = t.incomingMonitorsById[probeId],
          firewall = t.get('firewall'),
          logCtxt = null,
          probe = null;

      // Already disconnected
      if (!monitorProxy || !monitorProxy.probe) {
        return callback(null);
      }

      // Get a good logging context
      probe = monitorProxy.probe;
      logCtxt = {
        probeClass: monitorProxy.get('probeClass'),
        initParams: monitorProxy.get('initParams'),
        probeId: probeId
      };

      // Called upon disconnect (internal or external)
      var onDisconnect = function(error) {
        if (error) {
          log.error(t.logId + 'probeDisconnect', error);
          return callback(error);
        }
        var duration = logCtxt.duration = Date.now() - probe.connectTime;
        probe.off('change', monitorProxy.probeChange);
        monitorProxy.probe = monitorProxy.probeChange = null;
        delete t.incomingMonitorsById[probeId];
        log.info(t.logId + 'probeDisconnected', logCtxt);
        stat.time(t.logId + 'probeDisconnected', duration);
        return callback(null);
      };

      // Disconnect from an internal or external probe
      if (probe && probe.connection) {
        router.disconnectExternal(probe.connection, probeId, onDisconnect);
      } else {
        router.disconnectInternal(probeId, onDisconnect);
      }
    }
function ( params , callback ) { callback = callback || function ( ) { } ; var t = this , errorText = '' , router = Monitor . getRouter ( ) , probeId = params . probeId , monitorProxy = t . incomingMonitorsById [ probeId ] , firewall = t . get ( 'firewall' ) , logCtxt = null , probe = null ; // Already disconnected if ( ! monitorProxy || ! monitorProxy . probe ) { return callback ( null ) ; } // Get a good logging context probe = monitorProxy . probe ; logCtxt = { probeClass : monitorProxy . get ( 'probeClass' ) , initParams : monitorProxy . get ( 'initParams' ) , probeId : probeId } ; // Called upon disconnect (internal or external) var onDisconnect = function ( error ) { if ( error ) { log . error ( t . logId + 'probeDisconnect' , error ) ; return callback ( error ) ; } var duration = logCtxt . duration = Date . now ( ) - probe . connectTime ; probe . off ( 'change' , monitorProxy . probeChange ) ; monitorProxy . probe = monitorProxy . probeChange = null ; delete t . incomingMonitorsById [ probeId ] ; log . info ( t . logId + 'probeDisconnected' , logCtxt ) ; stat . time ( t . logId + 'probeDisconnected' , duration ) ; return callback ( null ) ; } ; // Disconnect from an internal or external probe if ( probe && probe . connection ) { router . disconnectExternal ( probe . connection , probeId , onDisconnect ) ; } else { router . disconnectInternal ( probeId , onDisconnect ) ; } }
Process an inbound request to disconnect with a probe

@method probeDisconnect
@protected
@param params {Object} Disconnect parameters, including:
probeId {String} The unique probe id
@param callback {Function(error)} Callback function
Process an inbound request to disconnect with a probe