我使用Angular和ui-router。我想捕获用户是否在线,以便向他们显示他们在网站上连接的人员的状态。我查看了$ stateChangeStart事件等等,但如果浏览器关闭,它似乎无法覆盖。
设置用户在应用中的状态并在他们离开时更改为离线状态的最佳方式是什么?
非常感谢。
答案 0 :(得分:1)
这取决于您使用的后端,例如可以建立套接字连接,当删除时,服务器将知道这一点。或者它可以只是将每分钟一个查询发送到url并且服务器将last_visit_datetime写入用户的函数。或基于cookie的解决方案。
答案 1 :(得分:0)
您可以在onbeforeunload
服务上收听$window
事件。
angular.module('app').controller('controller', [
'$window',
function($window) {
$window.onbeforeunload = function () {
// Do stuff
}
}
]);