OpenFire - 使用PubSub实现永久群聊

5

首先是来自这个问题:

Asmack/openfire如何让用户永久地留在群聊房间中

我了解到不能使用MUC来保持用户在群聊中的持久性,他们会自动离开群聊并在下次上线后重新加入,这个概念类似于IRC,就像在这里问的一样 -> http://community.igniterealtime.org/thread/48020.

然后从stackoverflow的问题中,我了解到可以使用pubsub,然后我对pubsub进行了一些研究,得到的结果是pubsub可以使用户持续在线,即使用户离线,但消息流更像是从发布者到订阅者(只读)。

因此,如果我想创建一个群聊应用程序,我可以使用pubsub并将所有成员设置为同时成为发布者和订阅者吗?还是有其他替代方案?或者我的对pubsub和MUC的理解是错误的? 我的目标是创建一些类似于WhatsApp或黑莓信使的群聊。

谢谢。


不太确定你想做什么。你是想保持用户列表并显示他们的在线状态吗? - Mark S
@MarkStraley 不需要那样,我想创建一个即时通讯应用程序,用户可以创建一个群组,群组成员将始终在群组中,并且消息将始终在群组中传递,因此当用户想要阅读群组消息时,必须打开群组聊天,你明白我的意思吗? - Niko Adrianus Yuwono
如果我理解正确的话,看一下花名册。您可以使用花名册创建组。我认为花名册组和发布订阅的某些组合可能是您想要的。我的第一个想法不会是MUC。一旦您在花名册中订阅/授权,它将保留直到被删除。 - Mark S
@MarkStraley 啊,我从未听说过花名册,我会先研究一下,谢谢你的建议马克! - Niko Adrianus Yuwono
@nayoso 你最终是怎么做到的呢?我和你遇到了完全相同的问题已经几周了。请分享一下你的发现。 - Talha Mir
@TalhaMir,项目现在因为另一个原因而搁置了,我的客户想要增加功能手机的需求,如果有任何更新,我会让你知道的 :) - Niko Adrianus Yuwono
1个回答

3
您可以通过更改Openfire的以下代码,使用户在MUC中成为永久用户。
File : src/java/org/jivesoftware/openfire/muc/spi/LocalMUCUser.java

change line 547-550:

// TODO Consider that different nodes can be creating and processing this presence at the same time (when 

remote node went down)

removeRole(group);

role.getChatRoom().leaveRoom(role);

TO:

// TODO Consider that different nodes can be creating and processing this presence at the same time (when 

remote node went down)

// TODO Dont remove user from group when they go offline.

//removeRole(group);

//role.getChatRoom().leaveRoom(role);

你测试过这个吗?如果我从多用户聊天中删除用户,那么事件还会起作用吗?请回复。提前感谢。 - Jagdish
当用户连接丢失时,用户将不会离开群组。如果您正在显式执行此操作,则它将无法正常工作。 - Jaspreet Chhabra
谢谢您的快速回复。我希望做成类似于WhatsApp的应用。我已经尝试使用您的代码,但它没有按预期工作。是否有其他替代方法可行? - Jagdish
1
@JaspreetChhabra:我已经在我的服务器上配置了Openfire。但是我是通过安装文件进行配置的。我还想创建基于在线状态的群聊。我下载了Openfire服务器代码,并按照您上面提到的更改了文件。但是我无法使用我的Tomcat服务器从代码运行Openfire服务器。您能否帮助我了解如何在本地Tomcat服务器上部署自定义的Openfire服务器代码? - Dhaiyur
你需要从Openfire代码构建它,而不是使用设置。或者你也可以使用MongooseIM服务器,它有muclight。请参考https://xmpp.org/extensions/inbox/muc-light.html。 - Jaspreet Chhabra
显示剩余5条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接