1

我正在构建一个 Javascript XMPP 客户端,它创建或加入一个 XMPP 多用户聊天。XMPP-Server 是 Openfire,我在浏览器中使用 strophe.js 和插件 strophe.muc.js。我是这样加入的:

var connection = new Strophe.Connection(HTTPBIND);
connection.muc.join(
        roomJid,
        userName,
        onMessage,
        onPresence,
        onRoster
);

现在我正在尝试使用任何用户的从属标志来决定进一步的步骤,所以我采用 roster 对象,它是由 strophe 库通过 onRoster 回调提供的,如下所示:

onRoster: function (roster){
    console.log(roster);
    // do stuff
    return true;
}

不幸的是,我加入的所有 js-user-objects 的隶属关系都为“无”。我认为这不可能是服务器故障,因为如果我使用常规 XMPP 客户端 (Adium) 加入该 MUC,则关联的用户对象将具有适当的从属关系“成员”。当时没有在服务器端设置密码或任何其他限制。

那么 Adium 在加入该 MUC 时有什么不同,在加入时我必须做什么才能使 JS 客户端也成为“成员”?

4

0 回答 0