我正在使用express.session来设置会话的到期时间。由于服务器和客户端之间存在会话维护,节点服务器是否可以向客户端广播以通知客户端会话将到期(例如:到期前5分钟)?
1)在节点服务器和客户端之间建立会话。服务器中的会话存储在mongodb中。
2)当会话将在5分钟前过期时,服务器向客户端发送通知
3)客户端浏览器向用户提示警告框。
app.use(express.session({
cookie : { maxAge : new Date(Date.now() + (60 * 1000 * 30)) }
}));
答案 0 :(得分:0)
我认为一个好方法是尝试使用socket.io
在客户端每1分钟发出一次'checkSessionExpiration'调用。
setInterval(function() {
socket.emit('checkSessionExpiration');
}, 60 * 1000);
socket.on('sessionAlert', function ()) {
alert('session will expire in ...');
}
在服务器端,您可以检查会话是否即将过期。
socket.on('checkSessionExpiration', function () {
// check the session here and emit a sessionAlert
// if session will expire soon
socket.emit('sessionAlert');
}