code: public void readPayload(ByteBuffer dst)
              throws IOException
      {
          while (true) {
              int dstRemaining = dst.remaining();
              int bufferRemaining = buffer.size() - position;
              if (bufferRemaining >= dstRemaining) {
                  buffer.getBytes(position, dstRemaining, dst);
                  position += dstRemaining;
                  return;
              }
              buffer.getBytes(position, bufferRemaining, dst);
              position += bufferRemaining;
  
              nextBuffer();
          }
      }
docs: Reads payload bytes of binary, extension, or raw string types.
  
  <p>
  This consumes bytes, copies them to the specified buffer, and moves forward position of the byte buffer
  until ByteBuffer.remaining() returns 0.
  
  @param dst the byte buffer into which the data is read
  @throws IOException when underlying input throws IOException