Strophe.js: Как использовать плагин strophe.roster.js

Я нашел плагин для ведения реестра в strophe.js.

Я нашел плагин здесь, но недостаточно документации предоставлено.

Это фрагмент функции инициализации кода:

    init: function(conn)
        {
            ...

            var newCallback = function(status)
            {
                if (status == Strophe.Status.ATTACHED || status == Strophe.Status.CONNECTED)
                {
                    try
                    {
                        // Presence subscription
                        conn.addHandler(roster._onReceivePresence.bind(roster), null, 'presence', null, null, null);
                        conn.addHandler(roster._onReceiveIQ.bind(roster), Strophe.NS.ROSTER, 'iq', "set", null, null);
                        console.log(items);
                    }
                    catch (e)
                    {
                        Strophe.error(e);
                    }
                }
            };
            ...
            Strophe.addNamespace('ROSTER_VER', 'urn:xmpp:features:rosterver');
        },

Моя проблема в том, что я не получил свой список, поэтому присутствие не может быть обновлено.

Предполагается, что список запросов отправляется по функции init, но я не смог его найти.

Кто-нибудь использует этот плагин?

Как получить список с помощью этого плагина, так как код сильно отличается от книги профессионального программирования XMPP.

Заранее спасибо:)

2 ответа

Я сделал это таким образом. Но я согласен, все плагины - это борьба, потому что документации очень мало.

Посмотрите, поможет ли это кому-нибудь, так как это очень старо:

    /**
 * Called when connection is fully established
 */
function onConnected() {
    // SEE http://xmpp.org/rfcs/rfc6121.html#roster-login
    // the order of setting initial presence and requesting the roster is important.
    // Get the roster for the first time (we might need to keep a copy on session storage)
    connection.roster.get(onGetRoster, 0);
    // pres is an strophe helper to represent a presence status. after connecting, we tell the server we are online.
    connection.send($pres());

}

/**
 * When user just connected and gets the roster information
 */
function onGetRoster(items) {
    if (!items || items.length == 0)
        return;
    console.log(items);
}

Используйте conn.roster.get(rostercb);. Не забудьте настроить свое присутствие.

Другие вопросы по тегам