Google应用程序引擎频道代码在使用javascript的生产中失败;无法读取属性';移除VentListener';“未定义”的定义;错误

Google应用程序引擎频道代码在使用javascript的生产中失败;无法读取属性';移除VentListener';“未定义”的定义;错误,javascript,google-app-engine,Javascript,Google App Engine,我有一些代码过去可以使用,现在仍然可以使用最新的SDK 1.8.3,但是在生产环境中,它不再工作了。它就在这里失败了: ch = new goog.appengine.Channel(token); ch.open(); <--- this never returns 在SDK的例子中,我还看到一些随机的javascript堆栈跟踪,这些跟踪看起来像下面的跟踪,但是使用SDK时,代码按预期工作。我提到这一点是为了完整性,以防有人发现问题 Uncaught TypeError: Cann

我有一些代码过去可以使用,现在仍然可以使用最新的SDK 1.8.3,但是在生产环境中,它不再工作了。它就在这里失败了:

ch = new goog.appengine.Channel(token);
ch.open();  <--- this never returns
在SDK的例子中,我还看到一些随机的javascript堆栈跟踪,这些跟踪看起来像下面的跟踪,但是使用SDK时,代码按预期工作。我提到这一点是为了完整性,以防有人发现问题

Uncaught TypeError: Cannot call method 'markAsRemoved' of undefined jsapi:3069
goog.events.ListenerMap.removeAll jsapi:3069
goog.events.EventTarget.removeAllListeners jsapi:3159
goog.events.EventTarget.disposeInternal jsapi:3142
goog.net.XhrIo.disposeInternal jsapi:4915
goog.Disposable.dispose jsapi:2538
goog.net.XhrIo.cleanupSend_ jsapi:4841
goog.events.EventTarget.fireListeners jsapi:3171
goog.events.EventTarget.dispatchEventInternal_ jsapi:3207
goog.events.EventTarget.dispatchEvent jsapi:3138
goog.net.XhrIo.cleanUpXhr_ jsapi:4955
goog.net.XhrIo.onReadyStateChangeHelper_ jsapi:4943
goog.net.XhrIo.onReadyStateChangeEntryPoint_ jsapi:4927
goog.net.XhrIo.onReadyStateChange_

我的通道API工作正常


我想我已经看到了其他关于使用X版应用程序创建的频道与使用Y版应用程序创建的频道不兼容的评论,这就是你遇到的问题吗?

我已经找到了问题的症结所在。如果您在javascript的某个地方添加任何类似下面的方法

Object.prototype.foobar = function() {}

然后我在问题中描述的问题发生了!!!删除/更改此类代码解决了此问题。听起来像是production channel.js代码中的一个bug。

我将频道与会话绑定在一起,这样即使在代码更新时,当用户再次注销/登录时,新频道也可以正常工作。
Object.prototype.foobar = function() {}