Web 推送 - 他们是否使用 public 服务器,如 google 等?

Web Push - Do they use public servers like google etc?

据我了解Web Push,消息是通过 public 服务器传输的,例如 googleapi、mozilla 或其他服务器。这是正确的吗?

所以我无法在没有访问 public 网络的情况下使用私人服务器在私人网络中使用此功能? (这个功能怎么用在私密环境下?)

简单回答:您可以在专用网络中使用它。 Google/Mozilla/... 只涉及,如果网站作者这样设计的话。不需要。

是的,网络推送使用 public 服务器来传送推送通知。这样做是为了仅使用一个连接来接收来自多个网站的推送通知。

来自Firefox documentation

What information does Firefox use to provide Web Push?

Firefox maintains an active connection to a push service in order to receive push messages as long as it is open. The connection ends when Firefox is closed. On our server we store a randomized identifier for your browser, along with a randomized identifier for each site you authorize.

On Firefox for desktop, the push service is operated by Mozilla. Firefox for Android uses a combination of the Mozilla Web Push service and Google’s Cloud Messaging platform to deliver notifications to Firefox for Android.

In both cases, push messages are encrypted per the IETF spec and only your copy of Firefox can decipher them. The encrypted messages are stored on the server until they are delivered or expire.

同样,Chrome 通过 Google 服务器接收推送通知。如果无法访问这些服务器,Web 推送将无法工作。

在隔离网络中使用 Web 推送的一种可能方法是设置您自己的推送服务器。 Mozilla 推送服务器的代码是 available online,所以如果运气好的话,你可以让它在你的网络中工作。然后您必须配置所有 Firefox 实例以使用您的服务器(首选项名为 dom.push.serverURL)。我不知道 Chrome.

是否可能有类似的东西

您也可以使用 Notifications API 在不使用 Web 推送的情况下显示通知。但是,这仅在用户打开您的网站时有效。