【问题标题】:How to set and track a user's online status如何设置和跟踪用户的在线状态
【发布时间】:2015-12-04 03:06:42
【问题描述】:

我将 Angular 与 ui-router 一起使用。我想捕捉用户是否在线,以向他们在网站上连接的人显示他们的状态。我查看了 $stateChangeStart 事件等,但它似乎并没有涵盖浏览器是否关闭。

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

非常感谢。

【问题讨论】:

  • 嗯,也许有一个常规的 Ajax 调用说“嘿,我还在这里!”?
  • 或者websocket ping,或者中继状态的web worker。

标签: javascript angularjs angular-ui-router


【解决方案1】:

这取决于您使用的后端,例如可以建立套接字连接,当断开连接时,服务器会知道这一点。或者它可以是每分钟向 url 发送一个查询并且服务器将 last_visit_datetime 写入用户的函数。或基于 cookie 的解决方案。

【讨论】:

  • 太棒了。我正在使用流星,所以我可以在后端进行判断。谢谢!
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-11-16
    • 1970-01-01
    • 1970-01-01
    • 2015-03-07
    • 1970-01-01
    • 2020-08-28
    • 1970-01-01
    • 2012-01-17
    相关资源
    最近更新 更多