java - Google App Engine Channel API 在 token 过期后重新连接

标签 java google-app-engine gwt channel-api

我正在使用 Channel API (GAE Java SDK + GWT),并且正在尝试为有关重新创建 channel 的问题创建解决方法(在过期日期之后以及引发错误之后)。我发现这篇文章提供了可能的解决方案,但没有一个有效:https://groups.google.com/forum/?fromgroups=#!searchin/google-appengine-java/channel/google-appengine-java/kD3H6BWNYuA/NivXiDrqW7QJ

我尝试删除 Channel API iframe 并在过期时间之前重新创建 channel 。它似乎可以工作,但如果我重新创建一个 channel ,计时器不会重置,所以如果我尝试创建一个新 channel 并在过期后打开它,我会得到“onerror”和“onclose”(即使我关闭了套接字)。如果我刷新页面,它可以工作,但这不是一个好的选择

此外,如果互联网连接关闭并重新打开,有时我会收到错误代码 0 或 1。此处相同:我无法重新创建并打开新 channel ,因为我收到“onerror”和“onclose”。

任何人都可以帮助我提供解决方案的更具体细节吗?

更新: 在调用 onclose/onerror 后,我使用计时器重新创建 channel (5 秒),它现在可以工作了。但第一个 token 过期后,重新创建 channel 将不再有效:​​(

最佳答案

看来无法使用 gwt-gae-channel-...jar 在 GWT 中重新创建 channel 的原因是 ChannelFacotry 只会实例化一次 Channel 类型的对象,因此,当尝试重新创建并打开另一个 channel 时,必须将初始对象设置为 null。我能做到这一点的唯一方法是创建另一个类,并复制/修改代码(我添加了一个简单的方法将“channel”设置为 null)。

关于java - Google App Engine Channel API 在 token 过期后重新连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12513745/

相关文章:

java - 在java中使用PID杀死ubuntu进程

java - 文档中根元素后面的标记必须格式正确吗?

java - 如何运行打包在spring boot jar中的主类

google-app-engine - Cloud Scheduler(Cron Job)在错误的时间触发了 Google Cloud Function

java - 谷歌应用程序引擎 url 获取服务 iurl 问题

python - 指示 GET 响应已通过 Python AppEngine 完成

javascript - 如何在 GWT 中将 JSONObject 或 JavaScriptObject 分配给 $wnd[x]?

java - 在 Android 中集成 Omegle Chat,一段时间后应用程序崩溃?

gwt - 如何在 GWT 中集成 CKEditor

java - 最小化 GWT 应用程序的编译大小