如何在非 JavaScript 客户端上使用 Google 应用引擎Channel API for COMET。
我将用 python 或任何其他语言编写客户端,并且可以从客户端执行 HTTP 或 Socks。
我该如何继续,我想知道 JavaScript 客户端支持的情况?
JS 是使用长轮询还是与 GAE 服务器对话。
如何在非 JavaScript 客户端上使用 Google 应用引擎Channel API for COMET。
我将用 python 或任何其他语言编写客户端,并且可以从客户端执行 HTTP 或 Socks。
我该如何继续,我想知道 JavaScript 客户端支持的情况?
JS 是使用长轮询还是与 GAE 服务器对话。
异步消息传递是通过在页面中嵌入隐藏的 iframe 来完成的,然后使用 Google Closure javascript 库中的 goog.net.CrossPageChannel 类将消息从 iframe 发送到主机页面。
Closure CrosspageChannel 代码记录在这里:http ://closure-library.googlecode.com/svn/!svn/bc/4/trunk/closure/goog/docs/class_goog_net_xpc_CrossPageChannel.html
您可以轻松地对将从 iframe 传递到主机页面的消息进行反向工程。这些可能不会改变(尽管现在没有绝对的保证)。
我希望在本季度为 Channel API 开源客户端库,但以上内容应该可以帮助您入门。
我对 javascript Channel API 客户端进行了逆向工程并创建了一个python 库。随意使用它。我还没有在任何实际应用程序上测试过它,但从我所见,它似乎工作得很好。
Google App Engine 尚未发布任何有关 Channel API 背后协议的文档,因此没有开发 Javascript 语言之外的库(这里是Gwt的包装器)。
如果您有兴趣,可以为这些功能请求加注星标:
4189 - 使 Java 客户端(不仅仅是 javascript)能够使用 Channel API
4226 - 原生客户端应用程序的 Channel API?
4206 - 为 Channel API 创建本机 C# 客户端库
如果你想从非 JS 客户端进行双向更新,你可以使用XMPP。
酷,...我在应用引擎谈话 og Google I/O http://www.youtube.com/watch?v=oMXe-xK0BWA上找到了“通道 api”的 X 射线视图
它使用隐藏的 iframe http://en.wikipedia.org/wiki/Comet_(programming)#Hidden_ iframe
现在我将尝试在 python 或其他东西中模仿客户端。