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