code: function Prox(settings) {
  
      var self = this;
      this.log = settings.log;
  
      this.devices = new DeviceManager(settings);
      this.server = new ServerConnection(settings);
  
      this.server.on('listening', function (localPort, localAddress, protocol) {
          self.log('Web-Remote-Control Proxy Server listening to "' + protocol + '" requests on ' + localAddress + ':' + localPort);
      });
  
      this.server.on('error', this.handleError.bind(this));
  
      this.server.on('socket-close', function (socketId) {
          self.devices.removeBySocketId(socketId);
      });
  
      this.server.on('register', this.registerDevice.bind(this));
      this.server.on('ping', this.respondToPing.bind(this));
      this.server.on('status', this.forwardStatus.bind(this));
      this.server.on('command', this.forwardCommand.bind(this));
  
      this.stickers = new StickyMessages();
  
      EventEmitter.call(this);
  
  }
docs: This is the proxy server.  It is the "man in the middle".  Devices (toys,
  controllers and observers) connect to the proxy server.
  @param {object} settings (optional) Settings as defined by the help.