Различия между XMPP и Channel API для Google App Engine - PullRequest
7 голосов
/ 01 июня 2011

Я занимаюсь разработкой приложения, которое не находится в AppEngine и имеет функции чата, включающего коммуникационные веб-клиенты (браузер + javascript) и мобильные клиенты (ActionScript). Я думаю об использовании протокола XMPP в AppEngine (тогда использую только серверы для функции чата в Google и оставляю все остальное на моем сервере). Вы говорите мне, если это возможно? Каковы различия с API канала? Спасибо

Ответы [ 4 ]

10 голосов
/ 13 июня 2011

XMPP и Channel API решают проблемы на двух разных уровнях стека.

XMPP описывает общий способ передачи сообщения от одной конечной точки к другой. Существуют XMPP-клиенты для Windows, Linux, OSX и т. Д., И существуют существующие клиентские библиотеки XMPP, написанные C ++ , Python , javascript и т. Д. Если вы просто хотите доставить текст пользователю, который, как вы знаете, уже имеет клиент XMPP, с помощью API XMPP App Engine является очевидным решением; если вы хотите иметь огромный контроль над клиентским интерфейсом и иметь время на него, то использование существующей библиотеки XMPP и создание собственного клиента может быть хорошим выбором.

Channel API описывает метод на стороне сервера для отправки сообщений и метод на стороне клиента для получения сообщений. Реализация App Engine предоставляет клиент javascript, который является сложной частью для веб-приложения, поскольку для него требуется постоянное соединение HTTP. Конечно, вы можете заново реализовать Channel API на другой платформе, используя любые средства, которые вам нужны (для App Engine мы используем стек Google Talk; XMPP на бэкэнде с JSON через HTTP-соединение с длинным опросом на веб-интерфейсе).

Основной вопрос заключается в том, сколько абстракции вам нужно для реализации. Channel API абстрагируется от гораздо большего, чем XMPP API, и предоставляет клиентскую библиотеку для упрощения подключения через javascript.

1 голос
/ 02 июня 2011

Channel API использует нечто, называемое XPC , для связи с клиентом Google GTalk через IFrame. Этот клиент облегчает двунаправленную связь между браузером и вашим приложением. Предоставляемая вам библиотека JavaScript свободно привязана к текущему API WebSocket и должна упростить переход от Channel API к WebSockets, если / если она поддерживается в AppEngine.

Я считаю, что XMPP является основой для Channel API и является расширенным набором функций. Например, API-интерфейс XMPP поддерживает Приглашения

Итак, да, вы можете использовать Channel API (браузер) и XMPP (везде) для создания функций чата.

1 голос
/ 01 июня 2011

Насколько я понимаю, ChannelAPI является основой сервиса Google XMPP. Если вы хотите асинхронно посылать / получать (проталкивать сервер) рядные объекты JSON между клиентским JavaScript и вашим Webapp-приложением, размещенным на GAE, тогда ChannelAPI - это путь.

0 голосов
/ 02 июня 2011

XMPP API облегчает связь между вашим приложением и клиентом XMPP, таким как Google Talk.

Channel API используется для передачи данных из вашего приложения в веб-браузер с помощью веб-сокетов.

Либо можно использовать как часть приложения чата; выбор зависит только от того, будут ли клиенты чата использовать клиент XMPP или веб-браузер.

...