docs: def retransmit(self, data):
          """Processes messages that have been delivered from the transport
          protocol.
  
          Args:
            data (dict): A dictionary containing the packet data to resend.
  
          Returns:
            None
  
          Examples:
            >>> data
            {'method': 'REGISTER', 'address': ('192.168.0.20', 40080)}
  
          """
  
          # Handle retransmitting REGISTER requests if we don't hear back from
          # the server.
          if data["method"] == "REGISTER":
              if not self.registered and self.register_retries < self.max_retries:
                  logger.debug("<%s> Timeout exceeded. " % str(self.cuuid) + \
                                "Retransmitting REGISTER request.")
                  self.register_retries += 1
                  self.register(data["address"], retry=False)
              else:
                  logger.debug("<%s> No need to retransmit." % str(self.cuuid))
  
          if data["method"] == "EVENT":
              if data["euuid"] in self.event_uuids:
                  # Increment the current retry count of the euuid
                  self.event_uuids[data["euuid"]]["retry"] += 1
  
                  if self.event_uuids[data["euuid"]]["retry"] > self.max_retries:
                      logger.debug("<%s> Max retries exceeded. Timed out waiting "
                                    "for server for event: %s" % (data["cuuid"],
                                                                  data["euuid"]))
                      logger.debug("<%s> <euuid:%s> Deleting event from currently "
                                    "processing event uuids" % (data["cuuid"],
                                                                str(data["euuid"])))
                      del self.event_uuids[data["euuid"]]
                  else:
                      # Retransmit that shit
                      self.listener.send_datagram(
                          serialize_data(data, self.compression,
                                         self.encryption, self.server_key),
                          self.server)
  
                      # Then we set another schedule to check again
                      logger.debug("<%s> <euuid:%s> Scheduling to retry in %s "
                                    "seconds" % (data["cuuid"],
                                                 str(data["euuid"]),
                                                 str(self.timeout)))
                      self.listener.call_later(
                          self.timeout, self.retransmit, data)
              else:
                  logger.debug("<%s> <euuid:%s> No need to "
                                "retransmit." % (str(self.cuuid),
                                                 str(data["euuid"])))