docs: protected WsByteBuffer[] putBytes(byte[] data, WsByteBuffer[] inBuffers) {
          WsByteBuffer[] buffers = inBuffers;
          int space_left = this.byteCacheSize - this.bytePosition;
          if (data.length <= space_left) {
              // put it into the byte cache
              System.arraycopy(data, 0, this.byteCache, this.bytePosition, data.length);
              this.bytePosition += data.length;
          } else {
              // doesn't fit entirely, empty the cache and then the data to buffer
              buffers = flushCache(buffers);
              return GenericUtils.putByteArray(buffers, data, 0, data.length, this);
          }
  
          if (this.bytePosition == this.byteCacheSize) {
              // full cache, flush it
              buffers = flushFullCache(buffers);
          }
          return buffers;
      }