2012-02-29 11 views
7

Io uso la libreria strophe.js per inviare e ricevere messaggi XMPP nel browser. Funziona bene, ma solo per gli utenti che ho già nella mia lista di contatti - roster.Richiesta di autorizzazione (aggiungi al roster) utilizzando strophe.js

Ho bisogno di aggiungere qualcuno (il cui indirizzo so) al mio elenco. Come posso ottenere questo utilizzando strophe.js? Questo è importante per me dal momento che Gmail rifiuta l'invio di messaggi a persone che non ho nel mio elenco. Mi piacerebbe avere un abbonamento: entrambi, per essere in grado di ricevere e inviare messaggi.

risposta

10

Invia <presence to="[email protected]" type="subscribe"/>:

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

Quando il tuo amico accetta, dovrebbero inviare un sottoscrivere anche voi, che è possibile gestire impostando un gestore Strophe per presenza in entrata con il tipo "subscribe":

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

Grazie, è esattamente ciò di cui ho bisogno. –

+0

@MattJ e whit is_friend metodo, puoi aggiornare il codice con esso? – pregmatch

+1

@pregmatch Dipende dalla vostra applicazione. Riceve un JID e dovrebbe essere vero se l'utente vuole accettare la sua richiesta, o false se non lo fa. – MattJ

Problemi correlati