docs: def reconnect(self):
          """
          Handle reconnect logic if connection
          to crossbar is lost
          """
          connect_attempt = 0
          max_retries = self.config['max_reconnect_retries']
          logging.info('attempting to reconnect to crossbar')
          runner = self.setup_runner()
          while True:
  
              if connect_attempt == max_retries:
                  logging.info('max retries reached; stopping service')
                  sys.exit(1)
              self.check_event_loop()
  
              try:
                  logging.info('waiting 5 seconds')
                  time.sleep(5)
                  if self.check_transport_host():
                      logging.info('waiting 10 seconds to ensure that crossbar has initialized before reconnecting')
                      time.sleep(10)
                      runner.run(Component)
                  else:
                      logging.error('crossbar host port 8080 not available...')
              except RuntimeError as error:
                  logging.error(error)
              except ConnectionRefusedError as error:
                  logging.error(error)
              except ConnectionError as error:
                  logging.error(error)
              except KeyboardInterrupt:
                  logging.info('User initiated shutdown')
                  loop = asyncio.get_event_loop()
                  loop.stop()
                  sys.exit(1)
              connect_attempt += 1