我有过去可以工作的代码,并且仍然可以与最新的 SDK 1.8.3 一起工作,但是在生产中它不再工作了。它在这里失败了:
ch = new goog.appengine.Channel(token);
ch.open(); <--- this never returns
浏览器调试器显示下面的堆栈跟踪。来自生产环境的 channek.js 代码https://talkgadget.google.com/talkgadget/channel.js
Uncaught TypeError: Cannot read property 'removeEventListener' of undefined [VM] channel.js (18280):22
Qb [VM] channel.js (18280):22
cb [VM] channel.js (18280):14
g.Ma [VM] channel.js (18280):30
Zd [VM] channel.js (18280):88
ae [VM] channel.js (18280):87
$ [VM] channel.js (18280):95
ge.open [VM] channel.js (18280):100
reset 062a630fa51c7bd829554631f0939936-school_swapp.js:1
(anonymous function)
在 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_