1

我想编写一个命令行工具来接收来自 Google App Engine 的 Channel API 的通知。多亏了 v8 和 js 等开放的 JavaScript 虚拟机,这似乎非常简单。但是,这种方法的一个问题是这些 VM 不提供通道 API 引用的标准 js 对象,例如windowand 。document因此,运行此类代码会给您带来window/document/.. not found错误。

似乎有两种方法可以绕过这个障碍:

  1. 在 javascript 中编写轻量级标头以模拟所需对象的行为。
  2. 编辑 Google 的 javascript (/_ah/channel/jsapi) 并消除对此类对象的引用。

有谁知道这些方法是否存在现有实现,或者知道更好的主意?此外,在某处是否有可用的通道 API 客户端 JavaScript 代码的干净、未压缩版本?

4

1 回答 1

1

您无法编辑 /_ah/channel/jsapi 使用的脚本——它仅在通道针对开发应用服务器运行时使用。在生产中运行时,该脚本重定向到https://talkgadget.google.com/talkgadget/channel.js

因此,您只能模拟所需的对象,或者只使用隐藏的浏览器窗口。我会选择后者,因为我认为模拟所有 DOM 调用很快就会变得非常困难。

于 2013-06-23T13:47:05.737 回答