Web 推送消息是如何传递的?

How are web push messages delivered?

我尝试为网页设置推送消息。虽然我了解前端部分(Push API)并且有一个可用的本地主机演示应用程序,但我只是不明白服务器如何将消息推送到浏览器。

推送服务的包是如何路由到客户端的?客户端没有域名,通常也没有固定的IP地址,这怎么可能?

我读过 Google's guide to Web Push Libraries and parts of RFC 8030,但如果他们知道这个问题的答案,我就不知道了。

您的应用程序服务器使用浏览器端点作为 URL 发出 POST 请求。

浏览器端点类似于:https://updates.push.services.mozilla.com/A_VERY_LONG_TOKEN_123。这意味着 POST 请求被发送到浏览器制造商拥有的 Web 服务(例如 Firefox 的 Mozilla autopush)。

然后浏览器推送服务负责将消息传递给浏览器。它是与浏览器推送服务建立持久连接的客户端。还要考虑一旦建立 TCP 连接,您将获得一个全双工/双向通道(服务器可以在没有客户端事先请求的情况下发送消息)。

另请参阅此 introduction about web push