在Packetlistenr smack中不断发送数据包

时间:2013-02-14 12:14:37

标签: xmpp smack

我有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));

1 个答案:

答案 0 :(得分:1)

如果我正确解释您的代码,您只需按原样重新发送在线数据包 ,从而再次将数据包直接发送给您自己。您收到该重新发送的数据包,并且不知道它已经被您重新发送并再次发送,等等。

如果您确实只想将数据包重新发送给自己一次,则可能需要在重新发送之前分配一个ID。