当用户关闭时,标签或浏览器意味着用户无法在线,因此我想使用该在线或离线状态管理某些状态。
如何获得状态请获得解决方案。
答案 0 :(得分:1)
假设您拥有身份验证系统,则可以使用日期时间值向您的人员/帐户表添加新列。您可以在此处存储用户上次处于活动状态时的时间戳。您可以使用中间件更新此字段。因此,每当用户请求新页面时,您都可以更新数据库中的时间戳。要确定用户是否在线,您必须在几秒钟内确定用户在线的范围,例如,如果用户在10秒,20秒,30秒前请求页面,则可以假定用户在线。
答案 1 :(得分:0)
当用户关闭时,标签或浏览器意味着用户无法联机 我想使用在线或离线状态管理某些状态。
您可以抓住标签页或浏览器的关闭事件window.onbeforeunload
。在此事件中,通过传递userId对服务器执行ajax调用,然后在服务器中,您只需要更新数据库以说明用户处于脱机状态。
如何捕捉关闭事件的示例Working Example
<强>的JavaScript 强>
window.onbeforeunload = function () {
//your ajax call to server
};
<强> Jquery的强>
$(window).on('beforeunload', function(){
//your ajax call to server
});
中实施Ajax调用
服务器中的ActionResult示例
public ActionResult SignOutUser(string userId){
// your code to log off the user (either expire his cookies or log offline status in db)
}
这是如何处理此类方案的基本思路。