我正在构建一个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
);
现在我正在尝试使用任何用户的affiliation标志来决定进一步的步骤,所以我采用名单对象,这是由strophe库通过onRoster回调提供的,如下所示:
onRoster: function (roster){
console.log(roster);
// do stuff
return true;
}
不幸的是,我所有加入的js-user-objects都有联盟'none'。我认为这不是服务器故障,因为如果我使用常规XMPP客户端(Adium)加入MUC,则关联的用户对象将具有相应的从属关联“成员”。当时没有在服务器端设置密码或任何其他限制。
那么Adium在加入MUC方面做了哪些不同的事情,我在加入时必须做些什么才能使JS客户成为'成员'呢?