Запрос авторизации (добавить в реестр) с использованием strophe.js - PullRequest
8 голосов
/ 01 марта 2012

Я использую библиотеку strophe.js для отправки и получения сообщений XMPP в браузере. Он отлично работает, но только для пользователей, которые у меня уже есть в моем списке контактов - реестр.

Мне нужно добавить кого-то (чей адрес я знаю) в мой список. Как я могу добиться этого с помощью strophe.js? Это важно для меня, так как gmail отказывается отправлять сообщения людям, которых нет в моем списке. Я хотел бы получить подписку: и то, и другое, чтобы иметь возможность получать и отправлять сообщения.

1 Ответ

12 голосов
/ 01 марта 2012

Отправить <presence to="friend@example.com" type="subscribe"/>:

conn.send($pres({ to: "friend@example.com", type: "subscribe" }));

Когда ваш друг соглашается, он также должен отправить вам подписку, которую вы можете обработать, установив обработчик Strophe для входящего присутствия с типом «подписаться»:

function on_subscription_request(stanza)
{
    if(stanza.getAttribute("type") == "subscribe" && is_friend(stanza.getAttribute("from")))
    {
        // Send a 'subscribed' notification back to accept the incoming
        // subscription request
        conn.send($pres({ to: "friend@example.com", type: "subscribed" }));
    }
    return true;
}
conn.addHandler(on_subscription_request, null, "presence", "subscribe");
...