2012-02-29 25 views
7

Używam biblioteki strophe.js do wysyłania i odbierania wiadomości XMPP w przeglądarce. Działa dobrze, ale tylko dla użytkowników, których już mam na mojej liście kontaktów - liście.Żądanie autoryzacji (dodaj do planu) przy użyciu strophe.js

Potrzebuję dodać kogoś (którego adres znam) do mojej listy. Jak mogę to osiągnąć, używając strophe.js? Jest to dla mnie ważne, ponieważ Gmail odmawia wysyłania wiadomości do osób, których nie mam w moim spisie. Chciałbym uzyskać subskrypcję: obie, aby móc odbierać i wysyłać wiadomości.

Odpowiedz

10

Wysłać <presence to="[email protected]" type="subscribe"/>:

conn.send($pres({ to: "[email protected]", type: "subscribe" })); 

Gdy znajomy zaakceptuje, powinni wysłać subskrybować też, który można obsługiwać poprzez ustawienie obsługi strofa o obecności przychodzących z typu „zapisz”:

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: "[email protected]", type: "subscribed" })); 
    } 
    return true; 
} 
conn.addHandler(on_subscription_request, null, "presence", "subscribe"); 
+0

Dzięki, to jest dokładnie to, czego potrzebuję. –

+0

@MattJ and whit metoda is_friend, czy możesz zaktualizować kod za pomocą? – pregmatch

+1

@pregmatch To zależy od twojej aplikacji. Otrzymuje JID i powinien być prawdziwy, jeśli użytkownik chce zaakceptować jego żądanie, lub false, jeśli nie. – MattJ