的setMaxInactiveInterval(10 * 60);用户登录时将最大非活动间隔设置为10分钟, 当用户打开websocket时,将其重置为-1(未定义),因为Web套接字是Web应用程序中受保护的资源,也就是说, 要求授权用户访问它。 我打开websocket连接时能够提出其他请求, 一旦用户关闭Web套接字连接,我将httpsession超时重新设置为10分钟,但在web套接字关闭后,httpsession立即失效。 关闭websocket连接后如何保持httpsession活着? 这是代码片段
@OnOpen
public void onOpen(final Session s, EndpointConfig config)throws IOException {
this.httpSession = (HttpSession)
config.getUserProperties().get(HttpSession.class.getName());
//maintaining all opened websocket for httpsession in one map
webSession.put(s,httpsession)
httpSession.setMaxInactiveInterval(-1);
}
@OnClose
public void onClose( Session session,CloseReason reason) {
try {
HttpSession http_session= webSession.get(Session);
http_session.setMaxInactiveInterval(10*60);
} catch (IOException e) {
e.printStackTrace();
}
}