code: function (generator, logger, origin) {
          events.EventEmitter.call(this);
  
          this._generator = generator;
          this._logger = logger;
          this._origin = origin;
  
          this._connectionManager = new ConnectionManager(logger);
          this._domainManager = new DomainManager(this._generator, this._logger, this._connectionManager);
  
          this._httpRequestHandler = this._httpRequestHandler.bind(this);
          this._setupHttpAndWebSocketServers = this._setupHttpAndWebSocketServers.bind(this);
      }
docs: @constructor
  The Server module is a singleton object that manages both the
  connection to the parent process (over stdin/stdout) and to clients
  over WebSockets.
  
  Server inherits from the EventEmitter class and exports itself
  as the module.
  
  @param {Generator} generator
  @param {Logger} logger
  @param {string=} origin Optional origin string used to verify websocket client connections