首先来自这个问题: Asmack/openfire How do I keep a user permanently in groupchat room
我读到我不能使用MUC来保持用户在群组中的持久性,他们会自动离开群组并且在他们再次上线后可以重新加入,这个概念就像IRC一样,在这里被问到 - &gt ; http://community.igniterealtime.org/thread/48020
然后从stackoverflow问题我读到关于使用pubsub,然后我做了一些关于pubsub的研究,我得到的是pubsub可以坚持用户在组中即使用户离线但消息流是更像是从发布者到订阅者的一个方向(只读)。
因此,如果我想创建群聊应用程序,我可以使用pubsub并将所有成员设置为发布者和订阅者吗?或者是否有其他解决方案?或者我对pubsub和MUC的理解不正确? 我的目标是在whatsapp或blackberry messenger组中创建一些群聊。
感谢。
答案 0 :(得分: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);