我目前正在尝试制作一个基于 Strophe 的 javascript 脚本来获取 OpenFire 服务器中可用用户的列表(需要实时刷新)。我不在乎我是否必须创建一个组、房间或其他任何名称(无论如何,服务器将只为一小部分用户运行,每个人都相互连接),但我希望能够制作服务器给出这样的清单。我怎样才能做到这一点?我读过我需要使用 muc 扩展,但我似乎无法在任何地方找到它......
问问题
2631 次
1 回答
3
问题解决了!我必须将与我一起工作的用户添加到一个组中,并且每次用户离开或进入房间时,OpenFire 都会通知房间的其他用户,并且大多数情况下都会在 body 标签中包含一个存在节。这使得 Strophe 无法很好地识别那些存在节,因此我必须从 Strophe 连接中覆盖 xmlInput 函数,以获取我从服务器获得的每一个 xml 节。
conn.xmlInput = onXmlInput;
function onXmlInput(data) {
Strophe.forEachChild(data, "presence", function(child) {
var from = child.getAttribute('from');
from = from.substring(0, from.indexOf('@'));
//'type' will contain "unavailable" when offline and no attribute 'type' when online
if (!child.hasAttribute('type')) {
addUser(from);
} else {
deleteUser(from);
}
});
}
于 2012-04-25T04:35:48.987 回答