gpt4 book ai didi

安卓/XMPP : presence listener ignores/drops UNAVAILABLE presences

转载 作者:行者123 更新时间:2023-11-29 14:04:55 25 4
gpt4 key购买 nike

我正在尝试使用 smack/asmack xmpp 库在 Android 上建立一个简单的 xmpp 群聊。基本上一切正常,除了:UNAVAILABLE presence,即当用户离开聊天室时,似乎被忽略了。进入群聊的用户在场即可。

我的本​​地 Openfire 服务器和 xmpp 客户端 (Instantbird) 都告诉我当用户离开时存在不可用状态。只有我的东西有问题。

这是我的代码的主要 fragment 。简而言之,当用户(重新)进入房间时,我会看到控制台输出(“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 (...) {
...
}
}

我会理解什么时候听众什么也听不到。但这对我来说太奇怪了。我很高兴得到任何提示...谢谢!

基督徒

最佳答案

我找到了可行的解决方案 here .

它使用一个带有过滤器的 PacketFilter 来过滤 presence 数据包,并将其附加到 xmpp 连接;尽管我的解决方案是通过将 ParticipantListener 附加到 MultiUserChat。

我仍然不知道为什么我最初的尝试失败了,但是......好吧......现在可以了。

关于安卓/XMPP : presence listener ignores/drops UNAVAILABLE presences,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7581313/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com