2013-01-21 61 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 –