smack/asmack xmpp ライブラリを使用して、Android で簡単な xmpp グループ チャットを確立しようとしています。そして、基本的にすべてが機能していますが、例外は次のとおりです。利用できないプレゼンス、つまり、ユーザーがチャット ルームを離れたときは無視されるようです。グループ チャットに参加しているユーザーからのプレゼンスは問題ありません。
ローカルの Openfire サーバーと xmpp クライアント (Instantbird) の両方から、ユーザーが離れると利用できない存在があることがわかります。私の物だけに問題があります。
これが私のコードの主なスニペットです。つまり、ユーザーが部屋に (再) 入ると、コンソール出力 ("presenceListener.processPacket") が表示されます。ユーザーが部屋を出ると、何も起こりません。
public boolean join(String room, user) {
this.chat = new MultiUserChat(this.xmppConn, room);
this.presenceListener = new PacketListener() {
@Override
public void processPacket(Packet packet) {
System.out.println("presenceListener.processPacket");
if (packet instanceof Presence)
// Handle presence
}
};
this.chat.addParticipantListener(this.presenceListener);
this.messageListener = ...
this.chat.addMessageListener(this.messageListener);
...
try {
this.chat.join(user);
...
} catch (...) {
...
}
}
リスナーが何も拾わないときは理解できます。しかし、これは今の私には奇妙すぎる。ヒントがあればうれしいです...ありがとう!
キリスト教徒