XMPP マルチ ユーザー チャットを作成または参加する Javascript XMPP クライアントを構築しています。XMPP サーバーは Openfire で、ブラウザーで strophe.js とプラグイン strophe.muc.js を使用します。これが私が参加する方法です:
var connection = new Strophe.Connection(HTTPBIND);
connection.muc.join(
roomJid,
userName,
onMessage,
onPresence,
onRoster
);
今、任意のユーザーの所属フラグを使用して次のステップを決定しようとしているので、次のように onRoster コールバックを介して strophe ライブラリによって提供される名簿オブジェクトを取得します。
onRoster: function (roster){
console.log(roster);
// do stuff
return true;
}
残念ながら、参加したすべての js-user-objects の所属は「なし」です。通常の XMPP クライアント (Adium) でその MUC に参加すると、関連付けられたユーザー オブジェクトが適切な所属「メンバー」を持つため、これはサーバーの障害ではないと思います。その時点では、サーバー側でパスワードやその他の制限は設定されていません。
では、その MUC に参加する際の Adium の違いは何ですか?また、JS クライアントも「メンバー」になるには、参加時に何をしなければなりませんか?