0

我正在开发可以监控用户在线状态的节点应用程序。它使用 socket.io 来更新我们“观察”的用户的在线状态(例如,我们在我们所在的页面上知道的用户)。我现在要介绍的是idle状态,这基本上意味着在 X 时间不活动之后(如无请求),状态将从online变为idle

我确实监视所有套接字,因此我知道何时建立连接,所以我想到了使用它。

我的想法是在每个连接上使用 setTimeout 来实现这个特定用途(如果存在则清除前一个),在 setTimeout 中,我只需将用户的状态更改为idle并将该状态更改发送给观察者。

我关心的是在每个连接上设置和清除超时的性能和可扩展性。所以问题是,这种方法是否存在上述两个方面的问题?有没有更好的做法,也许是一个更擅长处理此类事情的库?

4

0 回答 0