Google Cloud Messaging через протокол XMPP (сервер, работающий с PHP и XMPPHP). Как это работает?

Может быть, вы уже слышали об этом. Это было объявлено в Google IO, может быть, месяц назад. Google Cloud Messaging был только нисходящим (сервер -> телефон), но теперь с усовершенствованным CCS (облачным сервером соединений) вы можете отправлять сообщения в восходящем направлении через постоянное TCP-соединение благодаря протоколу XMPP. Я уже разработал приложение, которое работает с GCM и HTTP. Он использует библиотеку gcm и классы, которые там упакованы (например, GCMRegistrar). Эти классы теперь устарели, и Google рекомендует вместо этого использовать API GoogleCloudMessaging.

Теперь все работает немного по-другому. У вас есть документация Google, и они очень хорошо объясняют, как вы можете создать свое приложение для Android. НО у меня проблемы с сервером, потому что я никогда раньше не работал с XMPP. Они дают код на Python здесь: http://developer.android.com/google/gcm/gs.html но я не имею представления о Python. Итак, я исследовал, а потом нашел библиотеку XMPPHP. Затем вы можете работать с PHP и использовать библиотеку для соединения с XMPP и отправки / получения сообщений.

У меня нет опыта работы с ним, и это не работает для меня. Как открыть соединение XMPP с сервером Google XMPP?

Я нашел способ открыть соединение (здесь вы работаете с библиотекой):

$conn = new XMPPHP_XMPP($host, $port, $user, $password, $resource, $server, $printlog, $loglevel);

Кто-нибудь знает, какие параметры я должен передать здесь, чтобы соединиться с Google CCS?

Я тоже хотел бы знать:

Как отправить сообщение через XMPP на устройство? Как я могу получить сообщение с устройства?

1 ответ

Я столкнулся с той же проблемой, попытался использовать XMPPHP, но затем обнаружил библиотеку JAXL и переключился на нее. См. Невозможно подключиться к серверу Google Cloud Connection. JAXL позволяет вам смотреть, что он отправляет, используя специальный режим отладки 'log_level' => JAXL_DEBUG, Потом я увидел, что Google отправляет мне это:

<failure xmlns="urn:ietf:params:xml:ns:xmpp-sasl"><temporary-auth-failure/><text xmlns="urn:ietf:params:xml:ns:xmpp-stanzas">Project 1945693724760 not whitelisted.</text></failure>

По этой причине я не мог отправлять уведомления. Сначала вы должны зарегистрироваться для получения CCS здесь: https://services.google.com/fb/forms/gcm/.

Другие вопросы по тегам