如何检测用户何时使用javascript查看网页

如何检测用户何时使用javascript查看网页,javascript,node.js,websocket,socket.io,refresh,Javascript,Node.js,Websocket,Socket.io,Refresh,我有一个网页,我想显示谁打开了该网页的用户。(我在服务器端使用node.js) 我当前的尝试: 在服务器端,有一个计数器计算他向该网页提交GET请求的时间。因此,如果他多次打开该页面,counter++ 每次用户离开网页时,它都会使用socket.io向服务器发送一个websocket window.onbeforeunload = function() { socket.emit('ClosePage'); } 然后在服务器端,当它接收到这个套接字时,它将他的计数器减少1,也称为计

我有一个网页,我想显示谁打开了该网页的用户。(我在服务器端使用node.js)

我当前的尝试:

在服务器端,有一个计数器计算他向该网页提交GET请求的时间。因此,如果他多次打开该页面,
counter++

每次用户离开网页时,它都会使用socket.io向服务器发送一个websocket

window.onbeforeunload = function() { 
    socket.emit('ClosePage');
}
然后在服务器端,当它接收到这个套接字时,它将他的计数器减少1,也称为
计数器--

因此,使用这种逻辑,可以检测用户何时打开网页,何时真正关闭网页

然而,当用户疯狂刷新页面时,问题就会出现,服务器只会不断累积计数器,而不会在之后减少计数器,因为窗口尚未卸载(我猜)

有人知道怎么修理这样的东西吗?或者有人知道大多数论坛在显示正在阅读帖子的用户或陌生人时使用的算法吗


非常感谢

如果cookie存在,您可以删除cookie而不增加计数。或者您可以在IP上进行阻止,但这可能会破坏一些真正的视图。

关于延迟减量之前的延迟,您是对的。这将与socket.io中的连接超时值相关联。你不能保证每个用户都会使用WebSocket。如果使用XHR轮询或其他类型的传输层,则必须在递减之前超时。Websocket用户将立即引起更改。

Google analytics会实时显示谁在您的网站上以及他们正在查看的内容

只是在谷歌上找到了一些链接。这里有两个,