android - 删除持久群聊室多用户聊天android

标签 android xmpp openfire smack

我使用 MultiUserChat(muc) 开发了一个群聊应用程序。问题是我无法从 openfire 网站上破坏持久聊天室。当我删除群聊室时,它会从 openfire 中删除,但是当我从 android 应用程序中单击删除组时,它会再次出现,但没有群聊的名称。例如考虑一个组“welcome (gf5wkw97wmd9ygzo)”。它的名字是“welcome”,房间 id 是“gf5wkw97wmd9ygzo”。但是当我删除它并从 Android 应用程序中单击已删除的组时,它只显示房间 ID,即仅显示“gf5wkw97wmd9ygzo”。我这里是截图。在创建或删除名为“welcom”的群聊室之后,它看起来像: 欢迎 (nv8vb53l5q88kf9r)

从 openfire 网站删除欢迎组后,它显示以下消息并且组没有出现。 房间被成功摧毁 从这里开始就没有问题了

但是当我从 android 应用程序中选择这个组并刷新 openfire 网页时,它看起来像: nv8vb53l5q88kf9r

请注意,这里只有房间 id: "nv8vb53l5q88kf9r"出现而没有组名,这是 "welcome",它不再持久化。

当我使用以下代码从 Android 应用程序中删除群聊室时就是这种情况:

muc = new MultiUserChat(xmppConnection, roomId);
muc.join(jid); 
muc.destroy("was tesing room", null);

请在这方面帮助我

最佳答案

new MultiUserChat(xmppConnection, roomId);

此行立即在 openfire 中创建房间;一旦您发送销毁请求,它将删除该房间。

但是当你在 android 中选择房间时检查你的代码如果你使用上面的行没有检查房间是否存在,在这种情况下检查上面的行之前使用 getRoomInfo();这将返回 Item not found 然后只需清理那个房间的书签...否则加入并收听消息。

实际房间 'welcome(nv8vb53l5q88kf9r)' 被删除,新房间用 jid 'nv8vb53l5q88kf9r' 创建,您还没有发送配置表,所以它没有名称;所以它显示为 nv8vb53l5q88kf9r。

同时检查 openfire 是否正在向房间参与者发送任何删除 IQ;然后倾听并据此采取行动。

希望这对您有所帮助。

关于android - 删除持久群聊室多用户聊天android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27154153/

相关文章:

android - 如何在没有应用程序的情况下测试 GCM 通知?

android - 我怎样才能每 15 分钟获得一次更新的陆地经度?

xmpp - 阻止其他常见的 xmpp 客户端登录 XMPP

timeout - GCDAsyncSocket ReadTimeoutError 问题

c# - 通过.net访问openfire Java API?

java - openfire smack 库

Android - 如何仅向背景图像添加动画(放大)而不影响其他图像?

android - 使用 NavigationView 时如何更改子菜单标题的颜色 - Android

java - 登录时 Smack 4.2.0 NullPointerException

xmpp - ofFice 对话日志仅保留群聊节的正文