使用httpSession.setMaxInactiveInterval(sec)重置http会话超时不起作用

时间:2017-01-10 09:16:26

标签: java websocket httpsession

的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();
    }
}

0 个答案:

没有答案