我正尝试在Android上使用smack/asmack xmpp库建立一个简单的xmpp组聊天。基本上所有的工作都是有效的,除了:不可用的状态,即当用户离开聊天室时,似乎被忽略。来自进入群聊的用户的存在状态很好。Android/XMPP:状态监听器忽略/丢弃不可用的状态
我的本地Openfire服务器以及一个xmpp客户端(Instantbird)告诉我,当用户离开时有一个UNAVAILABLE存在。只有我的东西有麻烦。
这是我的代码的主要代码片段。总之,当用户(重新)进入房间时,我看到控制台输出(“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 (...) {
...
}
}
我会理解什么时候听者什么都不会接。但目前这对我来说太奇怪了。我对任何提示感到高兴......谢谢!
基督教