如何使用会话管理flask中的用户?

如何使用会话管理flask中的用户?,flask,Flask,我正在使用flask socketio创建聊天网站。我控制使用会话(当用户登录时,我将用户会话设置为usernake)加入聊天的人,比如会话['name']=username,当用户不聊天时,我将他或她的会话设置为none。但是在这种情况下,当用户通过不单击注销按钮关闭网站时,通过用户注销会有用户会话。。所以用户的名字在列表上 如何通过关闭网站来管理未注销的用户?您可能希望尝试使用Javascript检测浏览器关闭事件。这不是一个完美的解决方案,但在许多情况下,它会让您有机会检测到用户正在离开,

我正在使用flask socketio创建聊天网站。我控制使用会话(当用户登录时,我将用户会话设置为usernake)加入聊天的人,比如会话
['name']=username
,当用户不聊天时,我将他或她的会话设置为none。但是在这种情况下,当用户通过不单击注销按钮关闭网站时,通过用户注销会有用户会话。。所以用户的名字在列表上


如何通过关闭网站来管理未注销的用户?

您可能希望尝试使用Javascript检测浏览器关闭事件。这不是一个完美的解决方案,但在许多情况下,它会让您有机会检测到用户正在离开,并触发一些代码来结束他们的会话

您可以查看各种方法,但我看到这些方法似乎非常有用。

根据本文档 您为flask.session设置了此参数

permanent
如果设置为True,会话将持续一个月 永久会话生命周期秒。默认值为31天。如果设置为 False(默认设置)当用户 关闭浏览器

同样从flask socketio中也提到了会话行为

会话上下文全局的行为方式与常规上下文不同 请求。SocketIO运行时用户会话的副本 已建立的连接可供在中调用的处理程序使用 这种联系的背景。如果SocketIO处理程序修改 会话,修改后的会话将保留以备将来使用 但常规HTTP路由处理程序将看不到这些更改。 实际上,当SocketIO处理程序修改会话时 会话是专门为这些处理程序创建的。技术 此限制的原因是要将用户会话保存为cookie 需要发送到客户端,这需要HTTP请求和 响应,该响应在SocketIO连接中不存在。使用时 服务器端会话,如Flask会话或 在会话扩展中,对HTTP路由中的会话所做的更改 只要会话处于活动状态,SocketIO处理程序就可以看到处理程序 未在SocketIO处理程序中修改

问题可能重复。