В настоящее время я пытаюсь создать сценарий javascript на основе Strophe, чтобы получить список доступных пользователей на сервере OpenFire (требуется обновление в реальном времени). Меня не волнует, нужно ли мне создавать группу, комнату или как там это называется (в любом случае, сервер будет работать только для небольшой группы пользователей, все подключены друг к другу), но я хочу иметь возможность сделать сервер дайте такой список. Как я могу это сделать? Я читал, что мне нужно использовать расширение muc, но я нигде не могу его найти ...
Получить список пользователей с сервера OpenFire
Ответы (1)
Задача решена! Мне пришлось добавить пользователей, с которыми я работал, в группу, и каждый раз, когда пользователь покидает или входит в комнату, OpenFire уведомляет других пользователей о комнате с помощью строфы присутствия, заключенной внутри тега body в большинстве случаев. Это заставляет Strophe не очень хорошо идентифицировать эти строфы присутствия, поэтому мне пришлось перезаписать функцию xmlInput из соединения Strophe, чтобы получить каждую отдельную строфу 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);
}
});
}
person
Gonzalo
schedule
25.04.2012
Привет, вы создаете группу и получаете онлайн-пользователей, но есть ли ограничение на 30 пользователей?
- person Tiger; 12.09.2014
У меня не было проблем с ограничениями, так как я не работал с большим количеством пользователей ... может быть, вы могли бы задать вопрос в отдельной ветке по этому поводу;)
- person Gonzalo; 27.09.2014
что внутри метода adduser и deleteuser?
- person Butani Vijay; 17.08.2016
@ButaniVijay
addUser
и deleteUser
- это ваши собственные методы, которые будут выполняться, когда новый пользователь присоединяется к серверу или отключается от него. В моем случае я добавил и удалил их из списка подключенных пользователей. Вот мой addUser
метод: $("select#recepients").append("<option id="+from+">"+from+"</option>")
- person Gonzalo; 18.08.2016