Android GCM: понимание XMPP

Я пытаюсь реализовать протокол XMPP в своем GCM с помощью приложения, но даже после тщательного поиска я не понимаю концепции, стоящие за ним.

Кроме того, возможно, мне действительно не нужен XMPP для того, что я хочу сделать со своим приложением, но мне нравится изучать вещи.

Давайте возьмем этот пример того, что я мог сделать с HTTP:

мое приложение отправляет привет слово и регистрацию на мой маленький личный сервер:url.openConnection(""), затемOutputStream для отправки данных POST иInputStream для получения ответа

сервер с этим URL помещает сообщение «hello word» в базу данных с regId, а затем использует библиотеку curl из php для отправки данных на серверы GCM в виде строки json, например{"myResponse":"I'm not world I'm Dan"} (с использованием идентификатора тестового адресата в эмуляторе)

GCM сервер делает свое дело

мое приложение (возможно, на другом телефоне) используетIntentService вWakefulBroadcastReceiver которые получают сообщение какintent.getExtras().getString("myResponse")

Это хорошо работает, и я могу отправлять сообщения с одного телефона на другой, используя мое приложение, и собирать данные на моем сервере.

Очень маленький вопрос

Является ли этот способ обработки HTTP нормально теоретически? (Я видел много постов и учебных пособий, особенно Google, но все еще не уверен)

Большой реальный вопрос

Какие шаги сделать то же самое с XMPP?

Я не хочу учебник или фрагменты кодов, я хочу понять, как информация проходит по этому протоколу, я не очень хорошо знаю (мне удалось установить ejabberd на моем сервере и использовать pidgin на моем компьютере и Xabber на моем телефоне ).

Ответы на вопрос(1)

Ваш ответ на вопрос