code: def _do_packet(self, packet, ip, port):
          
          msg_type = packet.header.message_type
  
          if msg_type == MsgType.JOIN:
              self._do_join_packet(packet, ip, port)
          elif msg_type == MsgType.UNJOIN:
              self._do_unjoin_packet(packet, ip, port)
          elif msg_type == MsgType.UPDATE:
              self._do_update_packet(packet, ip, port)
docs: React to incoming packet
  
          :param packet: Packet to handle
          :type packet: T >= paps.si.app.message.APPMessage
          :param ip: Client ip address
          :type ip: unicode
          :param port: Client port
          :type port: int
          :rtype: None