加入XMPP MUC没有邀请的房间 - ejabberd

问题描述:

对于持续的XMPP房间,如果他/她已断开连接一次,让客户端重新回到房间的方法是什么?在测试过程中,我发现只需将存在节回送到所述房间的JID,不会使客户再次进入房间。只有当用户收到邀请时才重新进入房间(因此,在我们的情况下,如果用户断开一次,用户需要另一个邀请加入房间?)?加入XMPP MUC没有邀请的房间 - ejabberd

如果是这种情况,那么对于正在重新连接的原始房间参与者实现这种邀请的自动生成的最佳方式是什么?

感谢。

+0

没有邀请我不认为这是可能的,但你可以设置一个听众并邀请离开的用户回到房间。 –

+0

Thanks @MoatezBouhdid - 尝试手动发回邀请,但离开的用户只是不会加入! :-( – vikram17000

+0

能够让用户无需邀请重新加入 - 只需重新加入正确的地方... – vikram17000

最好的方法是使用pubsub功能和相对MultiUserChat 书签。 如果您需要根据您的特殊需求拒绝的东西,您可以开发自定义书签管理器。

你需要进行如下操作:

1)当创建一个持久的群聊,书签后先加入的群聊。 (=>节省分贝群聊名和密码)

2)当recive邀请,书签的群聊第一加入后(=>节省分贝群聊名和密码)

3)在登录/重新连接retrive书签列表

4)的foreach书签 - >加入(并指定监听器等)

5)提供删除书签状况(基于时间戳,会议,明确要求等)。

Official specifications

+0

非常感谢@MrPk - 是的,我试图达到相同的目标。它是#4即使我向该用户发送新的邀请,他/她似乎也无法从他/她的本地保存的书签(它们只包含先前加入的房间的JID的列表(因为你没有存储密码)) – vikram17000

+0

你不需要真的再发送一个邀请,理论上你可以强制加入,就像接受了一个邀请请求一样,当然,检查一下MUC是否有密码(如果如果没有再插入它,你就无法加入)广告房间配置寻找不寻常的参数组合我使用这种基于Openfire + Smack API的方式,但它不依赖于实现 – MrPk

+0

Thanks @MrPk - 让我试用一些进一步的测试... – vikram17000

有一个proposed XEP和它在支持订阅最新ejabberd实现。它将MUC房间暴露为pubsub节点,以引入MUC房间用户的概念。

+0

谢谢@Sabbir ...是的,我一直在玩新的MUC /子模块,但也面临同样的问题...除非我能让房间参与者重新加入房间,我无法找到一种利用订阅的机制。不确定你是否有任何进一步的想法......? – vikram17000

+0

找到了解决办法 - 我在错误的地方重新加入! – vikram17000