2013-02-14 57 views
-1

我有Packetlistener在其中可以顯示從不同的資源改變存在。我想要什麼,只要存在從其他資源更改它應該重新發送接收到的存在數據包,但只有一次。但是,它會不斷髮送數據包。不斷地在Packetlistenr smack中發送數據包

 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

如果我正確地解釋你的代碼,你只需重新發送一個數據包存在作爲,爲,因此再直接發送數據包到自己。您會收到該重新發送的數據包,但不知道它已被您重新發送並重新發送,等等。

如果你確實想重發一個數據包給自己一次,你可能想在重發它之前分配一個ID。