5

首先从这个问题开始: Asmack/openfire How do I keep a user forever in groupchat room

我读到我不能使用 MUC 来保持用户在组中的持久性,他们会自动离开组并在他们再次上线后可以重新加入,这个概念就像 IRC 就像在这里提出的一样 - > http:/ /community.igniterealtime.org/thread/48020

然后从我读到的关于使用 pubsub 的 stackoverflow 问题中,我做了一些关于 pubsub 的研究,我得到的是 pubsub 可以使用户保持在组中,即使用户处于脱机状态,但消息流更像一个从发布者到订阅者的定向(只读)。

所以如果我想创建一个群聊应用程序,我可以使用 pubsub 并将所有成员设置为发布者和订阅者吗?还是有任何替代解决方案?或者我对pubsub和MUC的理解不正确?我的目标是创建一些群聊,例如在 whatsapp 或 blackberry messenger 群中。

谢谢。

4

1 回答 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);
于 2015-07-23T19:22:03.453 回答