我有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));
答案 0 :(得分:1)
如果我正确解释您的代码,您只需按原样重新发送在线数据包 ,从而再次将数据包直接发送给您自己。您收到该重新发送的数据包,并且不知道它已经被您重新发送并再次发送,等等。
如果您确实只想将数据包重新发送给自己一次,则可能需要在重新发送之前分配一个ID。