code: func (conn *WebsocketConnection) Read(b []byte) (n int, err error) {
  	if conn.reader == nil {
  		err = conn.waitForReader()
  		if err != nil {
  			return
  		}
  	}
  
  	rn, rerr := conn.reader.Read(b)
  	switch rerr {
  	case io.EOF:
  		conn.reader = nil
  	default:
  		n, err = rn, rerr
  	}
  	return
  }
docs: // Reads slice of bytes off of the websocket connection.