可能重复:
检查用户是否离线
我正在建立一个社区网站。用户将照常登录和注销。我使用属性 status online/offline 来设置用户的状态。但是,如果用户只是单击 X 按钮或以其他方式断开连接而不退出呢?它显示登录状态。我如何知道用户当前是否在线?
你有三个选择:
如果用户在特定时间段(例如 10 分钟)内没有加载新页面,您可以假设用户处于离线状态。这将通过为服务器上的每个用户保留“最后一页加载时间”来完成。
你可以在你的页面上有一个脚本,每隔一段时间就会触发一个 AJAX 调用来告诉服务器“我还在这里”——这将使用与 #1 相同的逻辑,但会更可靠一些。
您可以使用页面卸载 AJAX 调用来告诉服务器浏览器何时卸载页面,并将用户标记为离线,直到他们加载另一个页面。
我会使用 ajax 更新用户表(每 5 分钟一次),如果最后一次更新最多 4 分钟他在线,10 分钟前他刚刚离开,大于 15 离线。或者这里有一个关于 Node js 的关于为网站实现“存在”的建议?