docs: async def handle(self):
          """
          Listens on all the provided channels and handles the messages.
          """
          # For each channel, launch its own listening coroutine
          listeners = []
          for key, value in self.beat_config.items():
              listeners.append(asyncio.ensure_future(
                  self.listener(key)
              ))
  
  
          # For each beat configuration, launch it's own sending pattern
          emitters = []
          for key, value in self.beat_config.items():
              emitters.append(asyncio.ensure_future(
                  self.emitters(key, value)
              ))
  
          # Wait for them all to exit
          await asyncio.wait(emitters)
          await asyncio.wait(listeners)