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);. Не забудьте настроить свое присутствие.