2015-12-03 42 views
1

我正在使用Angular与ui-router。我想捕捉用户是否在线或不在网站上显示他们所连接的人的状态。我研究了$ stateChangeStart事件等等,但是如果浏览器关闭,它似乎没有覆盖。如何设置和跟踪用户的在线状态

设置用户在应用程序中的状态并在离开时更改为离线的最佳方式是什么?

非常感谢。

+1

嗯,也许有一个正常的Ajax调用说:“嘿,我还在这里!”? – Arg0n

+1

或websocket ping或网络工作者中继状态。 –

回答

1

它取决于您使用的后端,例如可以建立套接字连接并在丢弃时,服务器将知道这一点。或者它可以只是将每分钟一次查询发送给url和服务器将last_visit_datetime写入用户的函数。或基于cookie的解决方案。

+0

太棒了。我使用流星,所以我可以告诉后端。谢谢! –

0

您可以在$window服务上收听onbeforeunload事件。

angular.module('app').controller('controller', [ 
      '$window', 
    function($window) { 
     $window.onbeforeunload = function() { 
      // Do stuff 
     } 
    } 
]);