code: func NewConn(channels ...ChannelType) *Conn {
  	conn := &Conn{
  		ready:    make(chan struct{}),
  		channels: make([]*websocketChannel, len(channels)),
  	}
  	for i := range conn.channels {
  		switch channels[i] {
  		case ReadChannel:
  			conn.channels[i] = newWebsocketChannel(conn, byte(i), true, false)
  		case WriteChannel:
  			conn.channels[i] = newWebsocketChannel(conn, byte(i), false, true)
  		case ReadWriteChannel:
  			conn.channels[i] = newWebsocketChannel(conn, byte(i), true, true)
  		case IgnoreChannel:
  			conn.channels[i] = newWebsocketChannel(conn, byte(i), false, false)
  		}
  	}
  	return conn
  }
docs: // NewConn creates a WebSocket connection that supports a set of channels. Channels begin each
  // web socket message with a single byte indicating the channel number (0-N). 255 is reserved for
  // future use. The channel types for each channel are passed as an array, supporting the different
  // duplex modes. Read and Write refer to whether the channel can be used as a Reader or Writer.