code: func (conn *Conn) Open(w http.ResponseWriter, req *http.Request) (string, []io.ReadWriteCloser, error) {
  	go func() {
  		defer runtime.HandleCrash()
  		defer conn.Close()
  		websocket.Server{Handshake: conn.handshake, Handler: conn.handle}.ServeHTTP(w, req)
  	}()
  	<-conn.ready
  	rwc := make([]io.ReadWriteCloser, len(conn.channels))
  	for i := range conn.channels {
  		rwc[i] = conn.channels[i]
  	}
  	return conn.selectedProtocol, rwc, nil
  }
docs: // Open the connection and create channels for reading and writing. It returns
  // the selected subprotocol, a slice of channels and an error.