lib/protocols.js
function MessageEmitter(ptcl, opts) {
  opts = opts || {};
  events.EventEmitter.call(this);

  this._ptcl = ptcl;
  this._strict = !!opts.strictErrors;
  this._endWritable = !!utils.getOption(opts, 'endWritable', true);
  this._timeout = utils.getOption(opts, 'timeout', 10000);
  this._prefix = normalizedPrefix(opts.scope);

  this._cache = opts.cache || {};
  var fgpt = opts.serverFingerprint;
  var adapter;
  if (fgpt) {
    adapter = this._cache[fgpt];
  }
  if (!adapter) {
    // This might happen even if the server fingerprint option was set, in
    // cases where the cache doesn't contain the corresponding adapter.
    fgpt = ptcl.getFingerprint();
    adapter = this._cache[fgpt] = new Adapter(ptcl, ptcl, fgpt);
  }
  this._adapter = adapter;

  this._registry = new Registry(this, PREFIX_LENGTH);
  this._destroyed = false;
  this._interrupted = false;
  this.once('_eot', function (pending) { this.emit('eot', pending); });
}
function MessageEmitter(ptcl, opts) {
  opts = opts || {};
  events.EventEmitter.call(this);

  this._ptcl = ptcl;
  this._strict = !!opts.strictErrors;
  this._endWritable = !!utils.getOption(opts, 'endWritable', true);
  this._timeout = utils.getOption(opts, 'timeout', 10000);
  this._prefix = normalizedPrefix(opts.scope);

  this._cache = opts.cache || {};
  var fgpt = opts.serverFingerprint;
  var adapter;
  if (fgpt) {
    adapter = this._cache[fgpt];
  }
  if (!adapter) {
    // This might happen even if the server fingerprint option was set, in
    // cases where the cache doesn't contain the corresponding adapter.
    fgpt = ptcl.getFingerprint();
    adapter = this._cache[fgpt] = new Adapter(ptcl, ptcl, fgpt);
  }
  this._adapter = adapter;

  this._registry = new Registry(this, PREFIX_LENGTH);
  this._destroyed = false;
  this._interrupted = false;
  this.once('_eot', function (pending) { this.emit('eot', pending); });
}
function MessageEmitter ( ptcl , opts ) { opts = opts || { } ; events . EventEmitter . call ( this ) ; this . _ptcl = ptcl ; this . _strict = ! ! opts . strictErrors ; this . _endWritable = ! ! utils . getOption ( opts , 'endWritable' , true ) ; this . _timeout = utils . getOption ( opts , 'timeout' , 10000 ) ; this . _prefix = normalizedPrefix ( opts . scope ) ; this . _cache = opts . cache || { } ; var fgpt = opts . serverFingerprint ; var adapter ; if ( fgpt ) { adapter = this . _cache [ fgpt ] ; } if ( ! adapter ) { // This might happen even if the server fingerprint option was set, in // cases where the cache doesn't contain the corresponding adapter. fgpt = ptcl . getFingerprint ( ) ; adapter = this . _cache [ fgpt ] = new Adapter ( ptcl , ptcl , fgpt ) ; } this . _adapter = adapter ; this . _registry = new Registry ( this , PREFIX_LENGTH ) ; this . _destroyed = false ; this . _interrupted = false ; this . once ( '_eot' , function ( pending ) { this . emit ( 'eot' , pending ) ; } ) ; }
Base message emitter class.

See below for the two available variants.
Base message emitter class .