docs: async def wait(self):
          """Wait until the connection with the server ends.
  
          Client applications can use this function to block the main thread
          during the life of the connection.
  
          Note: this method is a coroutine.
          """
          while True:
              await self.eio.wait()
              await self.sleep(1)  # give the reconnect task time to start up
              if not self._reconnect_task:
                  break
              await self._reconnect_task
              if self.eio.state != 'connected':
                  break