【问题标题】:ConverseJS and Openfire: room joining problemsConverseJS 和 Openfire:房间加入问题
【发布时间】:2015-05-19 13:37:05
【问题描述】:

我已经设法让 converse.js v.0.9.0 客户端与我在 Debian 机器上的 openfire 服务器一起工作。

连接工作正常,我创建了几个用户来测试一切,一切正常,我可以登录,在用户之间进行私人对话甚至创建房间,点击“列表房间”时会正确列出" 按钮。

当用户想要加入另一个用户创建的房间时,问题就出现了。这样做时,带有房间名称的窗口正确弹出,但该房间中的用户列表为空,并且根本不存在通信(没有人可以在该房间看到彼此的消息)。

我查看了 openfire 管理面板,在会议服务器中,房间显示正确,但只有 1 个用户。

这是openfire会议服务器配置的问题吗?还是需要额外的房间聊天模块的逆向客户端?

我把测试页的代码放上来看看能不能帮到。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>prueba</title>
    <link rel="stylesheet" type="text/css" media="screen" href="css/converse.css">
    <script src="builds/converse.js"></script>
</head>
<body>

</body>
<script>
    require(['converse'], function (converse) {
 converse.initialize({
 auto_list_rooms: false,
 auto_subscribe: false,
 bosh_service_url: 'http://converse:7070/http-bind/', 
 hide_muc_server: false,
 i18n: locales.en, 
 prebind: false,
 show_controlbox_by_default: true,
 roster_groups: true
 });
});
</script>
</html>

【问题讨论】:

  • 我一直在做一些研究,看看可能会出现什么问题。我对此有点陌生,所以它需要我一些时间。我做的第一件事是查看日志,看看我是否有任何错误,我得到了这个:org.jivesoftware.openfire.spi.ConnectionManagerImpl - No se pudo establecer un socket de servidor 可以被翻译成这样: org.jivesoftware.openfire.spi.ConnectionManagerImpl - 服务器 socked 无法建立 另外我尝试安装一个 muc 插件,对于 Openfire 3.9.3 是否有必要?还是作为默认服务提供。

标签: configuration xmpp openfire converse.js


【解决方案1】:

解决了! 问题在于房间选择。

有几种方法可以将 .join 加入到 MUC(多用户聊天)中,我在此引用 Ignite Realtime:

// 使用 XMPPConnection 为房间创建 MultiUserChat MultiUserChat muc2 = new MultiUserChat(conn1, "myroom@conference.jabber.org");

// User2 加入新房间

// 客房服务将决定发送历史记录的数量

muc2.join("testbot2");

在这个例子中,我们可以看到如何使用给定的昵称和密码加入房间:

// User2 使用密码加入新房间 // 客房服务将决定要发送的历史数量

muc2.join("testbot2", "password");

在这个例子中,我们可以看到如何加入一个给定昵称的房间,指定要接收的历史数量:

// User2 使用密码加入新房间并指定 // 要接收的历史数量。在此示例中,我们请求最后 5 条消息。 DiscussionHistory 历史 = new DiscussionHistory(); history.setMaxStanzas(5);

muc2.join("testbot2", "password", history, conn1.getPacketReplyTimeout());

所以我的猜测是,Converse Join 函数仅在第一种方式(只有字符串参数的方式)上格式化,当我在服务器中检查更多选项时,可能要求更多参数的覆盖函数拒绝了 converse 的可能性执行它的连接函数,它只有一个参数。

【讨论】:

    猜你喜欢
    • 2014-06-21
    • 2016-09-01
    • 2018-03-22
    • 1970-01-01
    • 1970-01-01
    • 2012-12-08
    • 2022-12-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多