constructor ({ onProtocolError, onError, onComplete } = {}) {
    super()

    this._onProtocolError = onProtocolError
    this._onError = onError
    this._onComplete = onComplete
  }
@param {Object} param -
@param {function(err: String)} param.onProtocolError
@param {function(err: Error)} param.onError
@param {function(metadata)} param.onComplete