Android GCM: XMPP verstehen

Ich versuche, mit der App ein XMPP-Protokoll in mein GCM zu implementieren, aber selbst nach intensiver Suche verstehe ich die dahinter stehenden Konzepte nicht.

Auch vielleicht brauche ich XMPP nicht wirklich für das, was ich mit meiner App machen möchte, aber ich lerne gerne Dinge.

Nehmen wir dieses Beispiel, was ich mit HTTP machen könnte:

Meine App sendet "Hallo Wort" und die registrierte ID an meinen kleinen Personalserver:url.openConnection(""), dannOutputStream zum Senden von POST-Daten undInputStream für die Antwort bekommen

Der Server legt unter dieser URL die Nachricht "Hallo Wort" in eine Datenbank mit der ID "regId" und verwendet dann die Lockenbibliothek von PHP, um Daten als JSON-Zeichenfolge wie @ an GCM-Server zu sende{"myResponse":"I'm not world I'm Dan"} (unter Verwendung einer Testziel-ID in einem Emulator)

GCM Server macht sein Geschäft

Meine App (vielleicht auf einem anderen Handy) benutze einIntentService in einemWakefulBroadcastReceiver das bekommt die Nachricht alsintent.getExtras().getString("myResponse")

Das funktioniert gut und ich kann mithilfe meiner App Nachrichten von einem Telefon zu einem anderen senden und dabei Daten auf meinem Server sammeln.

ehr kleine Fra

Ist diese Art der Behandlung von HTTP theoretisch in Ordnung? (Ich habe viele Beiträge und Tutorials gesehen, besonders die von Google, aber immer noch nicht sicher)

Big echte Frage

Was sind die Schritte, um dasselbe mit XMPP zu tun?

Ich möchte kein Tutorial oder Teile von Codes, ich möchte verstehen, wie die Informationen über dieses Protokoll laufen. Ich kenne mich nicht gut aus. (Ich habe es geschafft, ejabberd auf meinem Server zu installieren und pidgin auf meinem PC und Xabber auf meinem zu verwenden Telefon)