code: def listen(self):
          
          pubsub = redis_conn.pubsub()
          name = self.name
          if isinstance(name, six.text_type):
              name = name.encode("utf-8")
          try:
              pubsub.subscribe([name])
          except ConnectionError:
              app.logger.exception("Could not connect to redis.")
          log("Listening on channel {}".format(self.name))
          for message in pubsub.listen():
              data = message.get("data")
              if message["type"] == "message" and data != "None":
                  channel = message["channel"]
                  payload = "{}:{}".format(channel.decode("utf-8"), data.decode("utf-8"))
                  for client in self.clients:
                      gevent.spawn(client.send, payload)
              gevent.sleep(0.001)
docs: Relay messages from a redis pubsub to all subscribed clients.
  
          This is run continuously in a separate greenlet.