有没有办法确定用户加入了哪些多用户会议 (MUC)? [英] Is there a way to determine which Mulit User Conferences (MUC) a user has joined?
问题描述
我想知道是否有办法查询 XMPP 服务器(传递用户 JID?)以找出该用户当前所在的聊天室?如果没有,我们可以查询 jabber 服务器以获取所有活动聊天室的列表吗?
I wonder if there is a way to query the XMPP server (passing user JID?) to find out what chat room(s) this user is currently in? If not, can we query jabber server to get a list of all active chat rooms?
顺便说一句,我们正在运行为多用户聊天启用的 ejabber.使用 Java 库(smack?)的解决方案将是理想的.
BTW we're running ejabber enabled for multiuser chat. A solution using a java library (smack?) would be ideal.
推荐答案
正如 Joe Hildebrand 所提到的,没有这样的标准功能,因为允许通过 XMPP 实现它是隐私侵犯,所以你不能指望从啪.也许使用管理员权限,您可以使用自定义协议扩展来执行此操作,但这似乎有风险.
As mentioned by Joe Hildebrand, there is no such a standard feature as it is a privacy violation to allow that over XMPP, so you cannot expect to do that from Smack. Maybe with admin privilege you could have a custom protocol extension that does that but that seems risky.
但是,在服务器级别,您应该能够为 ejabberd 编写一个自定义模块,该模块将查询或索引用户所在的所有房间.这不是标准的,并且涉及插件开发.
However, at the server level, you should be able to write a custom module for ejabberd that will query or index all rooms users are in. This is not standard and there is plugin development involved.
这篇关于有没有办法确定用户加入了哪些多用户会议 (MUC)?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!