google-app-engine - XMPP 和 Google App Engine 的 Channel API 之间的差异

标签 google-app-engine xmpp channel-api

我正在开发一个不驻留在 AppEngine 上的应用程序,它具有将聊天功能放入通信网络客户端(浏览器 + javascript)和移动客户端(ActionScript)中的功能。 我正在考虑在 AppEngine 上使用 XMPP 协议(protocol)(​​然后仅将服务器用于 Google 上的聊天功能,其余部分仍留在我的服务器上)。你告诉我这是否可能? 与 Channel API 有何区别? 谢谢

最佳答案

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

XMPP 描述了一种从一个端点到另一个端点获取消息的通用方法。已有用于 Windows、Linux、OSX 等的 XMPP 客户端,并且已有编写的 XMPP 客户端库 C++ , Python , javascript等等。如果您只是想将文本传送给您知道已经拥有 XMPP 客户端的用户,那么使用 XMPP App Engine API 是显而易见的解决方案;如果您想对客户端体验进行大量控制并有时间花在这上面,那么使用现有的 XMPP 库并制作自定义客户端可能是一个不错的选择。

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

根本问题是您的实现需要多少抽象。 Channel API 比 XMPP API 抽象得更多,并提供了一个客户端库来简化通过 javascript 的连接。

关于google-app-engine - XMPP 和 Google App Engine 的 Channel API 之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6205434/

相关文章:

google-app-engine - 作为 OpenId 提供者的 Appengine 应用程序。是否可以?

Java 从 Appengine 托管虚拟机连接到 Cloud SQL 第二代

xmpp - jabber 服务器的其他潜在用途

ios - 在 XMPP 花名册中添加多个用户

ios - 如何在iOS中使用XMPP消息的收据?

google-app-engine - App Engine Python 模块和 channel 服务

java - Google App Engine channel API

java - Google App Engine - 数据存储 java.lang.IllegalArgumentException : entity is too big

java - 使用 Google Endpoints 将图片上传到 Google Cloud Storage