code: func (s *WebSocketServer) Close() error {
  	s.tomb.Kill(errManualClose)
  
  	err := s.listener.Close()
  	_ = s.tomb.Wait()
  
  	if err != nil {
  		return err
  	}
  
  	return nil
  }
docs: // Close will close the underlying listener and cleanup resources. It will
  // return an Error if the underlying listener didn't close cleanly.