我有一个网站,我想在我的网站上找到许多在线用户(所有用户都登录到他们的帐户): 当他们离线或关闭页面时,在线用户数量会更新: 我该怎么做?有没有库来做这件事?
答案 0 :(得分:1)
您可以将is_online
BooleanField添加到您的用户模型,并为您的用户模型创建自己的自定义authenticate
backends,在验证后将is_online
设置为true。< / p>
当用户关闭网页时,您可以拥有一个事件监听器来发出Ajax请求,然后您将在DB中将用户is_online
列设置为false并将用户注销。
如果您不想从会话中删除用户,则可能需要在其他位置使用其他逻辑,以便在返回网站时将该属性设置为true。
// OR
window.addEventListener("beforeunload", function(e){
// Do something
}, false);
然后,您可以通过model.objects.filter(is_online=True)
找到您的在线用户,也可以在模型本身上创建一个自定义方法,该方法可以包含其他业务逻辑,或者可能发送电子邮件或其他内容。