code: func (c *wsConn) Read(b []byte) (int, error) {
  	n, err := c.reader.Read(b)
  	if err != nil && err != io.EOF {
  		return n, err
  	} else if err == io.EOF {
  		_, r, err := c.conn.NextReader()
  		if err != nil {
  			return 0, err
  		}
  		c.reader = r
  	}
  
  	return n, nil
  }
docs: // Read reads data from the connection.
  // Read can be made to time out and return an Error with Timeout() == true
  // after a fixed time limit; see SetDeadline and SetReadDeadline.