【问题标题】:OpenFire - Permanent Group Chat using PubSubOpenFire - 使用 PubSub 的永久群聊
【发布时间】:2013-11-15 23:11:15
【问题描述】:

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

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

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

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

谢谢。

【问题讨论】:

  • 不是 100% 确定您要做什么。您是否试图完成保留用户列表并显示他们的在线状态?
  • @MarkStraley 不,不需要那样,所以我想创建一个信使应用程序,用户可以在其中创建组,并且组成员将始终在组中,并且消息将始终在群里投递,所以当用户想要阅读群消息时,他/她必须打开群聊,你明白我的意思吗?
  • 如果我没听错的话,看看名单。您可以使用花名册创建组。我认为名册组和 pubsub 的某种组合可能是您所追求的。我的第一个想法不会是 MUC。一旦您在名册中订阅/授权,它就会一直保留,直到被删除。
  • @MarkStraley 啊我没听说过名册,我先研究一下,谢谢你的建议标记!
  • @nayoso 你最后是怎么做到的?几个星期以来,我一直陷入与您完全相同的问题。请分享您的发现。

标签: xmpp chat publish-subscribe openfire multiuserchat


【解决方案1】:

您可以通过更改以下 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);

【讨论】:

  • 你测试过这个吗?如果我从 muc 中删除用户,那么甚至会起作用吗?请回复。提前致谢。
  • 当用户连接丢失时,用户不会离开组。如果你明确地这样做,那么它将不起作用
  • 感谢您的快速回复。我想和whats app一样。我已经尝试使用您的代码,但它没有按预期工作。有没有其他替代方式?
  • 如果它对你不起作用,那么你就犯了一个错误。因为它对我有用
  • @JaspreetChhabra:我在我的服务器中配置了 openfire。但我已经通过安装文件进行了配置。我还想进行在线群聊。我下载了openfire服务器代码,并且如上所述更改了文件。我无法使用我的 tomcat 服务器从代码运行 openfire 服务器。你能帮我看看如何在我的本地 tomcat 服务器上部署我自定义的 openfire 服务器代码吗?
猜你喜欢
  • 2013-11-08
  • 2017-07-13
  • 1970-01-01
  • 2013-09-24
  • 2016-12-04
  • 2013-07-08
  • 2015-01-25
  • 2014-11-14
  • 2014-06-01
相关资源
最近更新 更多