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 на моем телефоне ).