write (message, observer, flush) {
    const queued = this.queueObserverIfProtocolIsNotBroken(observer)

    if (queued) {
      if (this._log.isDebugEnabled()) {
        this._log.debug(`C: ${message}`)
      }

      this._lastMessageSignature = message.signature
      const messageStruct = new structure.Structure(message.signature, message.fields)

      this.packable(messageStruct)()

      this._chunker.messageBoundary()
      if (flush) {
        this._chunker.flush()
      }
    }
  }
Write a message to the network channel.
@param {RequestMessage} message the message to write.
@param {StreamObserver} observer the response observer.
@param {boolean} flush `true` if flush should happen after the message is written to the buffer.