docs: function Connection(opts) {
  
      EventEmitter.call(this);
  
      opts = opts || {};
  
      _.defaults(opts, {
          host: 'localhost',
          port: '11211',
          reconnect: true,
          maxValueSize: 1048576
      });
  
      this.host = opts.host;
      this.port = opts.port;
  
      this.commandBuffer = new Immutable.List();
  
      if (opts.onConnect) {
          this.onConnect = opts.onConnect;
      }
  
      if (opts.onError) {
          this.onError = opts.onError;
      } else {
          this.onError = function onError(err) { this.emit('error'); console.error(err); };
      }
      this.bufferBeforeError = opts.bufferBeforeError;
      this.netTimeout = opts.netTimeout || 500;
      this.backoffLimit = opts.backoffLimit || 10000;
      this.reconnect = opts.reconnect;
      this.disconnecting = false;
      this.ready = false;
      this.backoff = opts.backoff || 10;
      this.maxValueSize = opts.maxValueSize;
      this.writeBuffer = new Immutable.List();
  
      this.connect();
  }