2

我有一个使用 DWR 反向 Ajax 的 Web 应用程序(pollAndCometEnabled 设置为 true) 在我的 web.xml 中,我为 HttpSession 设置了 30 分钟的超时。由于 DWR 轮询服务器,因此 http 会话始终处于活动状态,结果是它永不过期,即使用户的交互超过 30 分钟处于非活动状态。有谁知道如何解决这个问题?

4

1 回答 1

0

我可以为你想出 3 种不同的选择...

1) 将您的彗星请求保留在不使用会话 cookie 的域上;作为附带好处,您还将减少请求开销

2)在客户端监控超时。根据您的应用程序设置,这可能有点麻烦,但 setTimeout 是一个非常简单的解决方案;缺点是,您并没有真正使它们过期,因此会话在技术上对服务器仍然有效,但好处是您可以轻松地给他们一个很好的“您的会话即将过期”警告。

3) 监控来自服务器的活动;由于您使用的是彗星解决方案,因此您可以监控服务器上的会话,当会话到期时,向客户端推送一条消息,通知他们会话已结束。如果您无法切换域,这是最好的选择,因为您可以在服务器上丢弃会话,同时让客户端知道。

于 2010-02-12T13:26:25.080 回答