Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Session php中的自动会话超时_Session_Timeout - Fatal编程技术网

Session php中的自动会话超时

Session php中的自动会话超时,session,timeout,Session,Timeout,我正在用php做会话超时。我打电话给php 通过ajax。如果用户 发送一个请求,由于会话已过期,该请求被重定向到登录页面 如何将会话超时消息自动发送回浏览器 而不是等待请求触发 比如,我应该在后台运行一个线程来检查时间 总是吗?伙计们,你们有什么想法吗 非常感谢。通过ajax从服务器向浏览器发送请求称为长轮询或“comet”。这是一项经过验证的技术,但现在没有陷阱 首先,需要为每个用户保持一个打开的连接。这是一个很大的开销,所以应该用NodeJS之类的东西来完成。即使如此,长轮询需要每隔20秒

我正在用php做会话超时。我打电话给php 通过ajax。如果用户 发送一个请求,由于会话已过期,该请求被重定向到登录页面

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

比如,我应该在后台运行一个线程来检查时间 总是吗?伙计们,你们有什么想法吗


非常感谢。

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

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


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

我同意,这绝对是正确的方向。您可以使用JavaScript的setTimeout,并让它遵循与服务器端类似的逻辑。