code: def _connect(self):
          
          try:
              while True:
                  _LOGGER.info('Trying to connect to %s', self.server_address)
                  try:
                      yield from asyncio.wait_for(
                          self.loop.create_connection(
                              lambda: self.protocol, *self.server_address),
                          self.reconnect_timeout, loop=self.loop)
                      self.tcp_check_timer = time.time()
                      self.tcp_disconnect_timer = time.time()
                      self._check_connection()
                      return
                  except asyncio.TimeoutError:
                      _LOGGER.error(
                          'Connecting to socket timed out for %s',
                          self.server_address)
                      _LOGGER.info(
                          'Waiting %s secs before trying to connect again',
                          self.reconnect_timeout)
                      yield from asyncio.sleep(
                          self.reconnect_timeout, loop=self.loop)
                  except OSError:
                      _LOGGER.error(
                          'Failed to connect to socket at %s',
                          self.server_address)
                      _LOGGER.info(
                          'Waiting %s secs before trying to connect again',
                          self.reconnect_timeout)
                      yield from asyncio.sleep(
                          self.reconnect_timeout, loop=self.loop)
          except asyncio.CancelledError:
              _LOGGER.debug(
                  'Connect attempt to %s cancelled', self.server_address)
docs: Connect to the socket.