这个问题大概没有答案。但是,我想我会试一试。我写了一个很棒的单页应用程序。当应用程序启动时,打开的选项卡将自己“注册”到服务器,服务器存储为“活动”选项卡。
如果用户 A 在工作区中更改 XYZ,则任何用户在该工作区上打开的每个选项卡都会收到 XYZ 已更改的通知。这会触发客户端重新加载,这将神奇地更新。目前,我正在通过投票来做到这一点。但是,当一切正常时,我可以使用 WS 或 Socket.io 之类的东西来使事情变得更快。
问题:每个选项卡都会收到通知。甚至是最初煽动它的标签!(结果,一个已经更新的屏幕得到更新)
我不知何故需要服务器知道发出请求的选项卡的选项卡 ID。请记住,用户可能打开了 5 个选项卡:如果他们更改 XYZ,所有选项卡都应该收到通知,除了实际触发它的选项卡!
目前,我正在为每个 Ajax 请求传递工作区 ID(用户可能已登录,并且可以同时访问多个工作区)。
- 解决方案 1:为每个请求附加工作区 ID和选项卡 ID
- 解决方案 2:仅对每个请求使用选项卡 ID。该应用程序将从 tabID 中计算出工作区 ID(它知道它属于哪个工作区)
- 解决方案3:??????(我错过了什么?)
有任何想法吗?