Я пытаюсь установить простой групповой чат xmpp на Android, используя библиотеку smack / asmack xmpp.И в основном все работает, кроме: недоступного присутствия, то есть когда пользователь покидает чат, кажется, игнорируется.Присутствие пользователей, входящих в групповой чат, в порядке.
Как мой локальный сервер Openfire, так и клиент xmpp (Instantbird) сообщают мне, что при выходе из системы присутствует НЕДОСТАТОЧНОЕ присутствие.Только мои вещи имеют проблемы.
Вот основной фрагмент моего кода.Короче говоря, когда пользователь (повторно) входит в комнату, я вижу вывод консоли («senceListener.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 (...) {
...
}
}
Я бы понял, когда слушатель выберетдо ничего.Но это слишком странно для меня в данный момент.Я рад любой подсказке ... спасибо!
Кристиан