我的应用程序具有多个选项卡支持。所以我将所有数据保存在localStorage中。该应用程序还具有套接字支持,并且成功登录后,我必须通过发出事件来授权套接字。
现在在一种情况下,如果用户在登录之前打开了多个选项卡,然后从其中一个选项卡登录,然后所有选项卡都应该同步工作,该怎么办?
所有标签都将获得令牌,因为我将令牌存储在本地,但是与此同时,我还必须授权我的套接字,因为所有标签都将具有单独的套接字实例。
我需要一些事件来触发所有其他选项卡的事件以授权套接字实例。为此,我从参考堆栈代码中使用了以下选项卡侦听器,但它卡住了我的浏览器选项卡。
window.addEventListener('storage', (event) => {
if (event.newValue === 'socketAuth') {
if (event.key === 'sendAuth') {
console.log('Send Auth Event');
} else if (event.newValue === 'disconnect') {
console.log('Disconnect Socket');
}
}
});
在我的一个演示中,它运行良好,但在此演示中却没有。我需要做的任何更正或实现此目的的任何其他方式。我的应用代码在Angular5中。