Github 如何即时更新其 Web 界面?

Mat*_*att 8 github push-notification websocket

Github 上的一些东西几乎是即时更新的。一个例子是,当推送合并分支时,其相应的拉取请求将merged几乎立即更新为状态。

实时 Github 拉取请求状态更新

我认为这是一个 WebSocket,但我在我的开发工具(或 Wireshark)中看不到任何 websocket,然后我认为它可能是 Push API,但我不需要选择加入才能允许它工作吗?

我这么问是因为我正在寻找一种在网络应用程序中向用户推送(近乎)实时更新的方法,我很好奇 Github 是如何做到的。

Ber*_*tel 8

Github.com使用websocket进行通知,但是我们看看websocket是在哪里调用的

Github.com 使用网络工作者。具体来说,为了通知,他们使用共享工作人员,这就是为什么您在浏览上下文的网络选项卡中看不到网络活动的原因。

为了查看共享工作人员,在新选项卡中输入:“chrome://inspect/#workers”,您将看到如下内容:

在此输入图像描述

单击“检查”,然后转到“网络”选项卡:

在此输入图像描述

如果没有显示任何内容,请单击“终止”并刷新其他选项卡页面 (github.com),以便它再次出现

此文件(behaviors-xxxx.js) 加载工作人员 url :

this.worker = new SharedWorker("/socket-worker.js","socket-worker-v7"),
Run Code Online (Sandbox Code Playgroud)

工作人员通过以下脚本加载: https: //github.com/socket-worker.js

  • 太棒了,谢谢!我开始认为他们已经破解了“超感官知觉”。 (2认同)