2013-01-21 67 views
3

我正在寫一個Openfire插件來截獲服務器在客戶端空閒時發送給客戶端的Ping消息。該系統平安的樣子:如何攔截來自Openfire服務器的Ping消息?

<iq from='capulet.lit' to='[email protected]/balcony' id='s2c1' type='get'> 
    <ping xmlns='urn:xmpp:ping'/> 
</iq> 

然而,當我使用PacketInterceptor攔截所有服務器和客戶端之間的數據包,攔截器能夠攔截所有除平安包。我不明白髮生了什麼事。任何幫助將非常感激!

+0

您是否能夠捕獲存在數據包? – kincaid

回答

0

下面是我的插件中的覆蓋方法intercepPacket,它可以截獲ping消息。 供您參考〜:)

@Override 
public void interceptPacket(org.xmpp.packet.Packet packet, Session session, 
     boolean incoming, boolean processed) throws PacketRejectedException { 
    if (incoming && !processed) { 
     String packetXml = packet.toXML(); 
     logger.warn("\n" + new XmlFormatter().format(packetXml)); 
    } 
} 
+0

我知道您在if語句中使用了傳入,因爲您想從客戶端處理傳入消息到服務器,但使用!處理的含義是什麼? @BrownyLin –