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.