如何检测用户何时离开网站?

Art*_*mix 1 javascript php disconnect

我正在读这个问题:试图检测浏览器关闭事件

但它不够全面,或者至少我不确定它,我需要检测用户何时离开网站,这可能是:

  • 网络死了
  • PC关机(例如断电)
  • 用户关闭浏览器
  • 用户关闭运行网站的浏览器选项卡

我相信还有更多的案例.

这可能需要由服务器管理,而不是在极端情况下不会被触发的某些javascript事件.

在这种情况下可以使用什么想法?

Ali*_*guy 5

您可以使用socket.io并监听套接字何时丢失,或者您可以让您的站点向服务器发送心跳,如果X毫秒没有脉冲,您可以假设用户因为您列出的任何原因而离开.

  • 当然,socket.io 默认每 25 秒发送一次心跳,客户端有 60 秒的时间来响应每个脉冲。您可以配置它(https://github.com/Automattic/socket.io/wiki/Configuring-Socket.IO),或者您可以在没有套接字的情况下重现相同的逻辑,只需让客户端每分钟左右发送一次机器时间到服务器上的一个带有令牌的脚本,每隔几分钟,您的服务器就可以根据发布的机器时间检查服务器时间 - 如果它们没有保持密切,则假设用户已经离开。 (2认同)