Xmpp 在Packetlistenr smack中持续发送数据包

Xmpp 在Packetlistenr smack中持续发送数据包,xmpp,smack,Xmpp,Smack,我有一个Packetlistener,在其中可以显示从不同资源更改的状态。我想要的是,无论何时状态从其他资源更改,它都应该重新发送接收到的状态数据包,但只发送一次。然而,它不断地发送数据包 connection.addPacketListener(new PacketListener(){ @Override public void processPacket(Packet presencePkt) { pres= ((

我有一个Packetlistener,在其中可以显示从不同资源更改的状态。我想要的是,无论何时状态从其他资源更改,它都应该重新发送接收到的状态数据包,但只发送一次。然而,它不断地发送数据包

        connection.addPacketListener(new PacketListener(){

        @Override
        public void processPacket(Packet presencePkt) {
             pres= ((Presence) presencePkt);

        switch(pres.getMode()){
            case available: 
                connection.sendPacket(pres);
            break;
            case dnd: 
                connection.sendPacket(pres);
            break;

            default :
                break;

        }


    }

}, new PacketTypeFilter(Presence.class));

如果我正确地解释了您的代码,您只需按原样重新发送一个状态数据包,从而再次将该数据包直接发送给您自己。您收到了“重新发送”数据包,但不知道它已经被您重新发送,然后再次发送,以此类推

如果您真的只想将数据包重新发送给自己一次,您可能希望在重新发送之前分配一个ID