| Server IP : 68.183.124.220 / Your IP : 216.73.217.137 Web Server : Apache/2.4.18 (Ubuntu) System : Linux Sandbox-A 4.4.0-210-generic #242-Ubuntu SMP Fri Apr 16 09:57:56 UTC 2021 x86_64 User : gavin ( 1000) PHP Version : 7.0.33-0ubuntu0.16.04.16 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /home/gavin/workspace/happymandarin/node_modules/node-inspector/lib/ |
Upload File : |
var EventEmitter = require('events').EventEmitter,
inherits = require('util').inherits,
DebuggerClient = require('./DebuggerClient').DebuggerClient,
ScriptManager = require('./ScriptManager').ScriptManager,
FrontendClient = require('./FrontendClient').FrontendClient,
FrontendCommandHandler = require('./FrontendCommandHandler').FrontendCommandHandler,
BreakEventHandler = require('./BreakEventHandler').BreakEventHandler,
ConsoleClient = require('./ConsoleClient').ConsoleClient,
HeapProfilerClient = require('./HeapProfilerClient').HeapProfilerClient,
InjectorClient = require('./InjectorClient').InjectorClient;
function Session(config, debuggerPort, wsConnection) {
this.debuggerClient = new DebuggerClient(debuggerPort);
this.frontendClient = new FrontendClient(wsConnection);
this.injectorClient = new InjectorClient(config, this);
this.consoleClient = new ConsoleClient(config, this);
this.heapProfilerClient = new HeapProfilerClient(config, this);
this.scriptManager = new ScriptManager(config, this);
this.breakEventHandler = new BreakEventHandler(config, this);
this.frontendCommandHandler = new FrontendCommandHandler(config, this);
this.resourceTreeResolved = false;
this.once('resource-tree-resolved', function() {
this.resourceTreeResolved = true;
}.bind(this));
this.frontendClient.on('close', this.close.bind(this));
this.debuggerClient.on('close', this._onDebuggerClientClose.bind(this));
this.debuggerClient.on('error', this._onDebuggerClientError.bind(this));
this._pingInterval = setInterval(function() {
wsConnection.ping(null, null, true);
}.bind(this), 1000);
}
inherits(Session, EventEmitter);
Session.prototype.close = function() {
clearInterval(this._pingInterval);
if (this.debuggerClient.isConnected)
this.debuggerClient.close();
else
this.emit('close');
};
Session.prototype._onDebuggerClientClose = function(reason) {
if (this.frontendClient.isConnected)
this.frontendClient.sendInspectorDetached(reason);
this.close();
};
Session.prototype._onDebuggerClientError = function(e) {
var err = e.toString();
if (e.helpString) {
err += '\n' + e.helpString;
}
this.frontendClient.sendLogToConsole('error', err);
};
module.exports = Session;