强制将客户加入房间

Posted

技术标签:

【中文标题】强制将客户加入房间【英文标题】:Force join a client into a room 【发布时间】:2016-09-06 14:24:45 【问题描述】:

我有一个使用 smack api 4.1.6 的 Xmpp 应用程序,我试图在没有邀请的情况下强制加入客户。

现在,我尝试了一个场景,我设置了一个监听器并在客户离开时邀请他回来。它有效,但这不是我想要的。

我需要在没有任何邀请的情况下强制将客户重新加入房间。

现在我想我可以将房间添加到客户端的书签,但这需要在客户端完成...

这可能吗? 任何帮助将不胜感激,谢谢。

【问题讨论】:

【参考方案1】:

在 MUC 中强制加入用户意味着每当用户被邀请到房间时,它会自动成为房间的一部分(邀请数据包在服务器上被拦截,用户成为房间的参与者)并且用户开始接收房间消息。

如果这是所需的行为,则需要对 Openfire 代码进行修改/调整(根据业务需要进行自定义)。

【讨论】:

是的,这是极端的解决方案,我想我会在用户第一次加入房间时为他添加书签。这可能吗?因为我已经看到在 ejabberd 中可用 房间书签是@mickaël-rémond 提到的客户端功能:***.com/questions/33366454/…,在它的 XEP 中也提到:xmpp.org/extensions/xep-0048.html。还可以看看这个类似的线程:***.com/questions/39045381/…。 Ejabberd 正在提供 MUC 订阅扩展,这是他们自己的实现,在 Openfire 中不可用。

以上是关于强制将客户加入房间的主要内容,如果未能解决你的问题,请参考以下文章

多次加入同一个房间和一个房间的客户

为啥即使在客户离开房间并加入另一个房间后,消息也会发送到所有房间?烧瓶插座

在 NestJs 中使用 Socket IO 加入和发射到房间

如何生成房间 ID 并强制两个用户加入该房间?

玩家可以加入多个房间吗?双关语

在连接时加入套接字 io 房间