php中的自动会话超时

时间:2012-03-13 02:18:32

标签: session timeout

我正在使用php进行会话超时。我打电话给php 通过ajax。在X秒不活动后,如果是用户 当会话已经过期时,它会将请求重定向到登录页面。

如何自动将会话超时消息发送回浏览器 而不是等待请求触发器?

就像,我应该在后台运行一个线程来检查时间 总是?你有想法吗?

非常感谢。

1 个答案:

答案 0 :(得分:2)

通过ajax从服务器向浏览器发送请求称为长轮询或“彗星”。这是一种经过验证的技术,但现在没有陷阱。

首先,需要为每个用户保持连接。这是一个很大的开销,所以应该用NodeJS之类的东西来完成。即使这样,长轮询也需要每20秒重置一次,这会产生变幻无常的代码。较新的浏览器引入了websockets,它改进了一些东西,但需要一个带有回退机制的框架。问题是你的申请是否值得。

我会在你的情况下做的是在JavaScript中实现相同的超时机制。这样,当会话在JavaScript中超时时,用户会收到一条很好的消息,如果用户由于某种原因绕过浏览器,服务器会强制执行超时。

相关问题