google app engine Appengine Java&GWT无法重新创建和打开频道
我在gwt中使用带有gwt gae通道库(v.0.4)的应用引擎通道API,并尝试在过期后测试通道的重新创建(即使用代码401调用onError)。
测试是:
-使用GWT RPC方法创建一个通道(clientID=和expiration=1分钟),并获取所需的令牌:createTestChannel(useremail)。
-打电话给工厂。createChannel(令牌,新ChannelCreatedCallback(){…})和频道。打开(新建MySocketListener(){…})
-当一个错误(…)调用(通道过期)我尝试再次调用createTestChannel(useremail)(为同一clientID获取新令牌)并打开一个通道,但我总是调用onError()和onClose()。
如果我刷新页面或使用相同代码打开新选项卡,第一个频道创建工作正常,但在每个频道过期后,我无法重新创建它们。我还尝试了另一个clientID,但它不起作用
# 1 楼答案
您必须在服务器上创建新通道并获取新令牌。从文档中:
代币两小时后到期。如果客户机保持与通道的连接超过两小时,则调用套接字的onerror()和onclose()回调。此时,客户机可以向应用程序发出XHR请求以请求新令牌
http://code.google.com/appengine/docs/java/channel/overview.html#Tokens_and_Security
# 2 楼答案
这是一个已知的问题:
https://groups.google.com/forum/?fromgroups#!searchin/google-appengine-java/channel/google-appengine-java/kD3H6BWNYuA/NivXiDrqW7QJ