【问题标题】:Google app engine Channel API for COMET on non Javascript clients用于非 Javascript 客户端上 COMET 的 Google 应用引擎 Channel API
【发布时间】:2011-06-10 21:49:13
【问题描述】:

如何在非 JavaScript 客户端上为 COMET 使用 Google 应用引擎 Channel API

我将用python或任何其他语言编写客户端,并且可以从客户端执行HTTP或Socks。

我应该如何进行,我想知道 JavaScript 客户端支持的情况?
JS 是使用长轮询还是与 GAE 服务器对话。

【问题讨论】:

    标签: python google-app-engine channel-api


    【解决方案1】:

    我对 javascript Channel API 客户端进行了逆向工程并创建了一个python library。 随意使用它。我还没有在任何实际应用程序上对其进行过测试,但据我所知,它似乎运行良好。

    【讨论】:

      【解决方案2】:

      异步消息传递是通过在页面中嵌入隐藏的 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 开源客户端库,但以上内容应该可以帮助您入门。

      【讨论】:

      • @Moishe 这是否意味着 Channel API 的 Javascript 客户端是 Closure 库?
      【解决方案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

      【讨论】:

      • 是否有任何机构试图在低级别对客户端活动进行逆向工程。
      • 可能,但 Afaik 还没有公开文档
      【解决方案4】:

      酷,...我在 app engine talk og Google I/O 上找到了“channel api”的 X-Ray 视图 http://www.youtube.com/watch?v=oMXe-xK0BWA

      它使用隐藏的 iframe http://en.wikipedia.org/wiki/Comet_(programming)#Hidden_iframe

      现在我将尝试在 python 中模仿客户端。

      【讨论】:

        【解决方案5】:

        如果你想从非 JS 客户端进行双向更新,可以使用XMPP

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-03-14
          • 1970-01-01
          • 2011-12-13
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多