-1

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

1 回答 1

1

如果我正确解释了您的代码,您只需按原样重新发送存在数据包,因此再次将数据包直接发送给您自己。您收到该重新发送的数据包但不知道它已被您重新发送并再次发送,依此类推。

如果您真的只想向自己重新发送一次数据包,您可能需要在重新发送之前分配一个 ID。

于 2013-02-15T08:22:29.140 回答