检查其他用户是否正在Node Express中查看此页面

时间:2020-04-20 03:44:54

标签: node.js express

我有一个NodeJs Express应用程序,当特定用户进入某个页面/路线时,我希望识别并显示其他用户当前是否也在浏览该页面。因此,例如,它会说“杰里当前正在浏览此页面”,而其他人则去了那里。

有没有简单/轻巧的方法来做到这一点?

1 个答案:

答案 0 :(得分:1)

首先,对于常规网页,服务器仅知道请求页面的人和时间。它本身并不完全知道该用户是否仍在查看该页面。用户可能已经关闭浏览器,在URL栏中键入了其他内容,计算机可能已经进入睡眠状态,等等。

第二,即使该页面仍在浏览器中显示,您也不知道计算机上是否有人。最好的办法是尝试跟踪该网页中的活动(最后的鼠标单击,该网页上最近的鼠标移动等)。

然后,要使网页甚至在浏览器中仍然打开,您都需要某种方式来跟踪该概念。我可以想到两种可能性。

  1. 您可以在网页中有一些Javascript,该Javascript定期(例如每隔几分钟发送一次)向您的服务器发送一个小的ajax调用,该调用基本上只是说“我还在这里”。这不会立即知道他们何时离开页面,但是如果服务器发现通常每隔几分钟就没有进行Ajax调用,那么服务器可以将该用户在该页面上的状态更改为不再存在。 / p>

  2. 如果该网页与服务器建立了webSocket或socket.io连接并使该连接保持活动状态,则每当浏览器关闭或用户关闭该选项卡或导航到另一个页面时,该webSocket或socket.io连接将自动关闭,并且服务器将收到套接字已关闭的通知。使用这种技术,当用户离开页面时,服务器可以立即知道很多信息。

相关问题