Получить список пользователей с сервера OpenFire

В настоящее время я пытаюсь создать сценарий javascript на основе Strophe, чтобы получить список доступных пользователей на сервере OpenFire (требуется обновление в реальном времени). Меня не волнует, нужно ли мне создавать группу, комнату или как там это называется (в любом случае, сервер будет работать только для небольшой группы пользователей, все подключены друг к другу), но я хочу иметь возможность сделать сервер дайте такой список. Как я могу это сделать? Я читал, что мне нужно использовать расширение muc, но я нигде не могу его найти ...


person Gonzalo    schedule 22.04.2012    source источник


Ответы (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
comment
Привет, вы создаете группу и получаете онлайн-пользователей, но есть ли ограничение на 30 пользователей? - person Tiger; 12.09.2014
comment
У меня не было проблем с ограничениями, так как я не работал с большим количеством пользователей ... может быть, вы могли бы задать вопрос в отдельной ветке по этому поводу;) - person Gonzalo; 27.09.2014
comment
что внутри метода adduser и deleteuser? - person Butani Vijay; 17.08.2016
comment
@ButaniVijay addUser и deleteUser - это ваши собственные методы, которые будут выполняться, когда новый пользователь присоединяется к серверу или отключается от него. В моем случае я добавил и удалил их из списка подключенных пользователей. Вот мой addUser метод: $("select#recepients").append("<option id="+from+">"+from+"</option>") - person Gonzalo; 18.08.2016