如何在非JavaScript客户端上使用Google应用引擎Channel API进行COMET。
我将用python或任何其他语言编写客户端,并且可以从客户端执行HTTP或Socks。
我该如何处理,我想知道JavaScript客户端支持的情况? JS是使用长轮询还是与GAE服务器交谈的内容。
答案 0 :(得分:8)
异步消息传递是通过在页面中嵌入隐藏的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开源客户端库,但上面的内容应该让你开始。
答案 1 :(得分:4)
我对javascript Channel API客户端进行了逆向工程,并创建了python library。 随意使用它。我还没有在任何真实世界的应用程序上测试它,但从我可以看到它似乎工作得很好。
答案 2 :(得分:3)
Google App Engine尚未发布任何有关Channel API背后的协议的文档,因此没有开发Javascript语言之外的库(这里是Gwt的包装器)。
如果您有兴趣,可以为这些功能请求加注星标:
4189 - Enable Java clients (not just javascript) to use the Channel API
4226 - Channel API for native client apps?
4206 - Create a native C# client library for the Channel API
答案 3 :(得分:3)
如果您想从非JS客户端进行双向更新,可以使用XMPP。
答案 4 :(得分:0)
酷,...我在应用程序引擎谈话og Google I / O上找到了“频道api”的X-Ray视图 http://www.youtube.com/watch?v=oMXe-xK0BWA
它使用隐藏的iframe http://en.wikipedia.org/wiki/Comet_(programming)#Hidden_iframe
现在我将尝试在python中模仿客户端。