为什么 GitHub 为 WebSocket 使用 SharedWorker

Why GitHub use SharedWorker for WebSocket

我很好奇 GitHub 问题更新后如何重新渲染组件,发现它们在 SharedWorker 中使用 WebSocket。
但是为什么他们在 SharedWorker 中而不是在主线程中使用它呢?使用多一个线程的 WebSocket 的主要好处是什么?

通常,当您希望同一浏览器实例的多个选项卡或 windows 能够共享该连接时,您会在 SharedWorker 中创建一个 WebSocket 连接。因此,如果您在同一个站点上打开多个选项卡(在本例中,GitHub),一个 WebSocket 连接就足够了。

例如,我们在为自己的 WebSocket 服务器(ConnectionSharing 对象)提供的客户端 API 中使用此技术。