riscrittura risposta di @ mschonaker ad essere un po 'più chiaro.
Entrambi gli utenti devono iscriversi l'uno all'altro e accettare la richiesta di iscrizione ricevuta. Chiamiamoli Alice e Bob. Alice invia una richiesta di abbonamento a Bob:
Presence subscribe = new Presence(Presence.Type.subscribe);
subscribe.setTo('[email protected]');
connection.sendPacket(subscribe);
Quando Bob riceve la richiesta, egli approva:
Presence subscribed = new Presence(Presence.Type.subscribed);
subscribed.setTo('[email protected]');
connection.sendPacket(subscribed);
Bob può anche essere interessati a presenza di Alice, così si sottoscrive a lei:
Presence subscribe = new Presence(Presence.Type.subscribe);
subscribe.setTo('[email protected]');
connection.sendPacket(subscribe);
e Alice ha bisogno di approvare la richiesta di Bob:
Presence subscribed = new Presence(Presence.Type.subscribed);
subscribed.setTo('[email protected]');
connection.sendPacket(subscribed);
Section 3.1 of RFC6121 è l'attuale migliore riferimento per come funziona.
fonte
2011-05-25 22:41:32
Grazie mille, questo era quello che stavo cercando! – vsm
Se l'utente ha aggiunto da qualsiasi altra fonte, ascolta il listener di pacchetti e invia Subscribe to jid, questo è il modo in cui funziona e puoi vedere l'abbonamento come "entrambi" nell'elenco di roster. Se viene utilizzato il tipo di abbonamento, la sottoscrizione sarà da (richiesta di invio roster) e (elenco a cui viene inviata la richiesta) – Zoombie
Ciao. ma dove scrivere questo codice due per iscriversi entrambi i lati –