我是jetty的新手,我尝试开发一个使用不同servlet的小应用程序。其中一个servlet是WebSocketServlet。现在我试图构建一个身份验证机制,我的基本想法是使用jetty的默认HttpSession实现,可以通过HttpServletRequest.getSession()访问;
所以我想说我想创建一个小聊天应用程序(我只谈论服务器端),并且假设只有两个 小服务程序:
因此,如果用户已登录,则avatar servlet应该只处理HTTP POST,这对我来说,用户有一个有效的HttpSession(当然与聊天servlet相同的HttpSession)。
我的问题: 假设用户通过聊天servlet聊了1个小时,并在这个小时后决定通过我的头像servlet更改他的头像图片。由于我正在使用websockets,因此页面永远不会重新加载,并且只在开始时(1小时前)调用聊天servlet来建立websocket连接。
所以我想,即使用户一直在线并且一直处于活动状态,当用户尝试使用头像servlet时(1小时后),会话也将过期。
我的假设是否正确?有没有人有这个主题的经验或知道更好的解决方案?
谢谢
答案 0 :(得分:1)
你可以每x分钟发送一个ajax-request,它只包含会话ID,因此基本上“触及”会话。这样,只要用户打开聊天窗口,会话就会保持活动状态。当聊天窗口关闭时,会话超时。