code: func ReadData(rw io.ReadWriter, s ws.State) ([]byte, ws.OpCode, error) {
  	return readData(rw, s, ws.OpText|ws.OpBinary)
  }
docs: // ReadData is a helper function that reads next data (non-control) message
  // from rw.
  // It takes care on handling all control frames. It will write response on
  // control frames to the write part of rw. It blocks until some data frame
  // will be received.
  //
  // Note this may handle and write control frames into the writer part of a
  // given io.ReadWriter.