docs: async def on_open(self):
          """DingDongmaster the connection is open"""
  
          self.__ensure_barrier()
          while self.connected:
              try:
                  if self.__lastping > self.__lastpong:
                      raise IOError("Last ping remained unanswered")
  
                  self.send_message("2")
                  self.send_ack()
                  self.__lastping = time.time()
                  await asyncio.sleep(self.ping_interval)
              except Exception as ex:
                  LOGGER.exception("Failed to ping")
                  try:
                      self.reraise(ex)
                  except Exception:
                      LOGGER.exception(
                          "failed to force close connection after ping error"
                      )
                  break