如何跟踪从主页打开的选项卡?

How to Keep track of tab opened from the main page?

我是 Web 开发的新手,正在寻找自己的方法。

我有以下情况:

用户登录网络应用程序。 He/She 将在他的控制台上显示四个不同的模块链接。

当 userA 单击其中一个链接时,将打开一个新的 TAB,并允许 userA 在该模块中创建 changes/work/。当 userA 在该特定模块上工作时,它将被签出给 UserA,所有其他用户将看到 UserA 正在他们的控制台上访问模块,而其他所有用户都无法访问。

现在,当模块(选项卡)的用户closes/logs-out时,模块在所有用户控制台中的状态应更改为"accessible"。

我选择MEAN stack来实现这个应用。

问题:

如何处理这种情况:

当模块(tab)用户closes/logs-out时,模块在所有用户控制台中的状态应更改为"accessible"。

如何跟踪打开的选项卡?

我觉得最合适的解决方案是使用套接字。 (您可以尝试 Socket.IO,但也有其他用于 websockets 的库)

这样做的主要原因是我们要跟踪断开连接事件。这需要来自 server/client 的某种轮询。你想用套接字做什么当然取决于你;可以将可访问模块的状态存储在映射中,并在您获得可访问模块的 GET 时更新它们。同样,您也可以将套接字与 'connect' 事件一起使用,从而为您提供实时更新的可能性。

当用户随后关闭模块时,将发送断开连接事件,以便您可以将其更改为可访问。