code: func (s *WebSocketServer) Accept() (Conn, error) {
  	select {
  	case <-s.tomb.Dying():
  		if s.tomb.Err() == errManualClose {
  			// server has been closed manually
  			return nil, ErrAcceptAfterClose
  		}
  
  		// return the previously caught error
  		return nil, s.tomb.Err()
  	case conn := <-s.incoming:
  		return conn, nil
  	}
  }
docs: // Accept will return the next available connection or block until a
  // connection becomes available, otherwise returns an Error.