用于非Javascript客户端的Google应用引擎Channel API的COMET实现
如何在非JavaScript客户端上使用Google应用引擎的通道API来实现COMET。
我打算用Python或其他语言编写一个客户端,并且可以通过HTTP或Socks从客户端进行通信。
我该怎么做呢?我想知道JavaScript客户端背后发生了什么?
JavaScript是使用长轮询还是其他方式与GAE服务器进行通信的呢?
5 个回答
3
如果你想要从一个不使用JavaScript的客户端进行双向更新,可以使用 XMPP。
4
我对javascript的频道API客户端进行了逆向工程,并创建了一个python库。你可以随意使用它。我还没有在任何实际应用中测试过,但从我看到的情况来看,它似乎运行得很好。
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的客户端库,但以上内容应该能帮助你入门。