我在 GWT 中使用带有 gwt-gae-channel 库(v. 0.4)的 App 引擎 Channel API,并且我正在尝试在过期后测试通道的重新创建(即使用代码 401 调用 onError)。
测试是:
- 使用 GWT RPC 方法创建一个通道(clientID= 和 expire = 1 分钟)并获取所需的令牌:createTestChannel(useremail)。
- 调用 ChannelFactory.createChannel(token, new ChannelCreatedCallback() { ... }) 和 channel.open(new MySocketListener(){...})
- 当 onError(...) 被调用时(通道过期)我尝试再次调用 createTestChannel(useremail) (以获取相同 clientID 的新令牌)并打开一个频道,但我总是得到 onError() 和 onClose() 调用。
如果我刷新页面或使用相同的代码打开一个新选项卡,第一个频道创建工作正常,但在每个频道到期后,我无法重新创建它们。我也尝试了另一个clientID,但它不起作用。
问问题
321 次
2 回答
0
您必须在服务器上创建一个新频道并获取新令牌。从文档:
令牌将在两小时内到期。如果客户端与通道保持连接超过两个小时,则会调用套接字的 onerror() 和 onclose() 回调。此时,客户端可以向应用程序发出 XHR 请求以请求新令牌。
http://code.google.com/appengine/docs/java/channel/overview.html#Tokens_and_Security
于 2012-03-06T12:01:30.007 回答
0
于 2012-03-06T14:03:15.613 回答