3

クライアントがアイドル状態になったときにサーバーがクライアントに送信する Ping メッセージを傍受する Openfire プラグインを作成しています。システム Ping は次のようになります。

<iq from='capulet.lit' to='juliet@capulet.lit/balcony' id='s2c1' type='get'>
  <ping xmlns='urn:xmpp:ping'/>
</iq>

ただし、PacketInterceptor を使用してサーバーとクライアント間のすべてのパケットをインターセプトすると、インターセプターは Ping 以外のすべてのパケットをインターセプトできます。何が起こっているのかわかりません。どんな助けでも大歓迎です!

4

2 に答える 2

1

ここでは、すべての着信および発信パケットをログに記録するパケット インターセプターの最も単純な例を見つけることができます。 http://faisalbhagat.blogspot.com/2014/03/openfire-logging-using-packetinterceptor.html

于 2014-03-31T12:19:19.293 に答える
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));
    }
}
于 2013-06-02T02:04:23.887 に答える