用于Google应用程序引擎频道API客户端的无窗口容器

Windowless container for Google App Engine channel API client

本文关键字:窗口 客户端 API Google 应用程序 引擎 频道 用于      更新时间:2023-09-26

我想编写一个命令行工具,用于接收来自Google App Engine的Channel API的通知。由于有了v8和js等开放的JavaScripts虚拟机,这似乎非常简单。然而,这种方法的一个问题是,这些VM不提供通道API引用的标准js对象,如windowdocument。因此,运行这样的代码会导致window/document/.. not found错误。

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

  1. 用javascript编写一个轻量级的头,以模拟所需对象的行为
  2. 编辑谷歌的javascript(/''ah/channel/jsapi)并消除对此类对象的引用

有人知道是否有这些方法的现有实现,或者知道更好的想法吗?此外,是否有一个干净的,未压缩版本的通道API客户端javascript代码可用?

您不能编辑/''ah/channel/jsapi使用的脚本——它只在通道在dev-app服务器上运行时使用。在生产中运行时,该脚本重定向到https://talkgadget.google.com/talkgadget/channel.js

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