2010-03-18 5 views
12

Voglio utilizzare XMPP per inviare dati al mio client che si tradurrebbe in una notifica per l'utente e pianificare utilizzando il loro google-id per accedere alla mia applicazione. Il modo in cui capisco XMPP è che è un semplice messaggio che va direttamente all'indirizzo, ma voglio che il client lo prenda come istruzioni e lo trasformi in informazioni gamestate.Utilizzo di XMPP per le notifiche push degli utenti su Android - qualsiasi modo per indirizzare questi elementi in modo che non vadano a Google Talk ecc.

Sarebbe molto frustrante per un utente ottenere un po 'di tuple di comando o spazzatura esadecimale nella loro chat di google! Sto fraintendendo il modo in cui tutto funziona?

+1

Se si esegue il proprio server XMPP, non sarà necessario tentare di ottenere le proprie credenziali Google e non si verificheranno i problemi descritti in questa domanda. – CommonsWare

+1

Sto usando la struttura del motore dell'app – Hortinstein

risposta

16

JID (ID Jabber/XMPP e quindi Google Talk ID) hanno diverse forme.

primo è un "JID nuda", es .: [email protected]
secondo luogo è un "JID pieno", es .: [email protected]/xyz123, dove xyz123 è chiamato risorsa.

Un utente può accedere al proprio account XMPP da più client contemporaneamente, a condizione che ciascun client utilizzi una risorsa univoca. Con Google Talk, in genere il server assegna la risorsa.

Quando parli con qualcuno su XMPP normalmente indirizzi i messaggi usando il loro JID nudo — non ti interessa a quale client viene consegnato il messaggio; il server di quella persona lo indirizza ai client appropriati in base alla loro disponibilità, ecc.

Ma è anche possibile indirizzare un messaggio direttamente a un JID completo. Questo è quello che vuoi fare, in modo che solo lo [email protected]/my-game-some-unique-ID riceva i messaggi specifici del tuo gioco.

Sia l'API di Google App Engine ti dà questa flessibilità, non ho ancora idea :)


Un'alternativa —, se GAE permette a questo — è quello di inviare un tipo di messaggio diverso.
X MPP è e X tensibile, ovvero non è necessario inviare una semplice vecchia stanza <message/> all'utente finale; puoi inserire un carico utile specializzato all'interno come una stanza per bambini <game/> e, poiché i client IM regolari non sanno come analizzare le tue stanze <game/>, non mostrano nulla all'utente. Solo il tuo client di gioco analizzerà e capirà queste informazioni.

+1

risposta incredibile, lo apprezzo molto, non avevo idea di nessuno di questi. Grazie ancora! – Hortinstein

+0

Siamo spiacenti per il commento in ritardo, ma sto verificando questo problema e Google Talk non funziona come previsto. Sto inviando un messaggio XMPP a [email protected]/myownresource e sebbene sia una risorsa personalizzata, Google Talk sta ricevendo il mio messaggio. Non dovrebbe, non è vero? Link alla mia domanda: http: // stackoverflow.it/questions/8524263/google-talk-receive-messages-with-different-jid-resource – Rafaesp

1

"Xtify ha una soluzione pronta per l'uso che esegue una variante di XMPP. Puoi quindi utilizzare il loro servizio web per inviare notifiche e dati personalizzati e intenti al dispositivo e alla tua app. Ho usato più soluzioni standard (piattaforma per push e gestione), ma l'API push funziona ed è gratuita.

+0

non è gratis dopo aver verificato questo http://xtify.com/pricing.html – Hunt

Problemi correlati