ConverseJS 和 Openfire:房间加入问题

ConverseJS and Openfire: room joining problems

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

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

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

我查看了 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>

已解决! 问题是房间选项。

有几种方法可以执行 .join 到 MUC(多用户聊天)中,我引用了 Ignite Realtime:

// Create a MultiUserChat using a XMPPConnection for a room MultiUserChat muc2 = new MultiUserChat(conn1, "myroom@conference.jabber.org");

// User2 joins the new room

// The room service will decide the amount of history to send

muc2.join("testbot2");

In this example we can see how to join a room with a given nickname and password:

// User2 joins the new room using a password // The room service will decide the amount of history to send

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

In this example we can see how to join a room with a given nickname specifying the amount of history to receive:

// User2 joins the new room using a password and specifying // the amount of history to receive. In this example we are requesting the last 5 messages. DiscussionHistory history = new DiscussionHistory(); history.setMaxStanzas(5);

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

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