Google App Engine的XMPP和渠道API之间的差异

Ste*_*ino 7 google-app-engine xmpp channel-api

我正在开发一个不在AppEngine上的应用程序,并且具有聊天功能,可以放入通信Web客户端(浏览器+ javascript)和移动客户端(ActionScript).我正在考虑在AppEngine上使用XMPP协议(然后在Google上只使用服务器进行聊天功能,并将其余部分留在我的服务器上).你告诉我这是否可能?与Channel API有什么不同?谢谢

Moi*_*vin 10

XMPP和Channel API解决了堆栈的两个不同级别的问题.

XMPP描述了从一个端点到另一个端点的消息的通用方法.现有的XMPP客户端适用于Windows,Linux,OSX等,并且现有的XMPP客户端库编写了C++,Python,javascript等.如果您只想向已知拥有XMPP客户端的用户提供文本,请使用XMPP App Engine API是一个显而易见的解决方案; 如果您希望对客户端体验拥有大量控制权并有时间花在其上,那么使用现有的XMPP库并制作自定义客户端可能是一个不错的选择.

Channel API描述了用于发送消息的服务器端方法和用于接收消息的客户端方法.App Engine实现提供了一个javascript客户端,这是Web应用程序的棘手部分,因为它需要持久的HTTP连接.您当然可以使用您喜欢的任何方式在另一个平台上重新实现Channel API(对于App Engine,我们使用Google Talk堆栈;后端的XMPP使用JSON通过前端的长轮询HTTP连接).

根本问题是您实现需要多少抽象.Channel API比XMPP API抽象得多,并且提供了一个客户端库,可以轻松地通过javascript进行连接.


Ma9*_*9uS 1

据我了解 ChannelAPI 是 Google XMPP 服务背后的支柱。如果您想在客户端的 JavaScript 和 GAE 上托管的 Web 应用程序之间异步发送/接收(服务器推送)行 JSON 对象,那么 ChannelAPI 是最佳选择。