code: function(serviceRegistry) {
          EventTarget.attach(this);
          this._id = ID_INCREMENT++;
          debugSockets[this._id] = this;
          this._debugService = serviceRegistry.getService('orion.debug.service');
          this._messageService = serviceRegistry.getService('orion.page.message');
  		this._socket = null;
          this._connectionId = undefined;
          this.supportsConfigurationDoneRequest = false;
          this.supportsConditionalBreakpoints = false;
          this.supportsEvaluateForHovers = false;
  
          this._launched = false;
          this._remoteRoot = '';
          this._localRoot = '';
          this._status = StatusEvent.STATUS.IDLE;
          this._project = null;
  
          this._frameId = undefined;
  
          this._breakpointModifiedHandler = this._handleBreakpointModified.bind(this);
          this._debugService.addEventListener('BreakpointAdded', this._breakpointModifiedHandler);
          this._debugService.addEventListener('BreakpointRemoved', this._breakpointModifiedHandler);
          this._debugService.addEventListener('BreakpointEnabled', this._breakpointModifiedHandler);
          this._debugService.addEventListener('BreakpointDisabled', this._breakpointModifiedHandler);
      }
docs: A debug socket provides the interface between orion and orion debug server.
  
  @class {orion.debug.DebugSocket}
  
  @see https://github.com/Microsoft/vscode-debugadapter-node/blob/master/protocol/src/debugProtocol.ts
  @fires {StatusEvent} - Reports the debugger's status (idle, running or paused)
  @fires {DebugProtocol.Event} event - Events from the debug adapter
  @fires {CapabilitiesEvent} - Reports the capabilities of the current adapter
  
  @param {orion.serviceregistry.ServiceRegistry} serviceRegistry