用于非Javascript客户端的Google应用引擎Channel API的COMET实现

6 投票
5 回答
2887 浏览
提问于 2025-04-16 10:10

如何在非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的客户端库,但以上内容应该能帮助你入门。

撰写回答