我正嘗試在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 (...) {
...
}
}
我會理解什麼時候聽者什麼都不會接。但目前這對我來說太奇怪了。我對任何提示感到高興......謝謝!
基督教