docs: function Server(clientListener) {
    net.Server.call(this);
    this._services = [];
    
    if (clientListener) { this.addListener('client', clientListener); }
    
    var self = this;
    this.addListener('connection', function(socket) {
      var connection = new Connection(socket);
      connection.once('connect', function(remote) {
        self.emit('client', connection, remote);
      });
      connection.on('error', function(err) {
        self.emit('clientError', err, this);
      });
      
      // Services exposed on the server as a whole are propagated to each
      // connection.  Flexibility exists to expose services on a per-connection
      // basis as well.
      self._services.forEach(function(service) {
        connection.expose(service.name, service.service)
      });
    });
  }