在将通知推送到 Web 浏览器的上下文中,PUSH SERVICE 充当 SERVICE WORKER 和 APPLICATION 服务器之间的接口。
我目前的理解是,
Google- FCM是Google Chrome和FireFox浏览器的推送服务
- APNS(Apple Push Notification Service(是Safari浏览器的推送服务
在这里,技术上是否有可能用通用的自定义服务工作者替换"推送服务"(即Google Chrome和FireFox浏览器的Google FCM和Safari的APNS(,这可能会解决所有支持Service Worker 和Push API的流行浏览器?
换句话说,开发人员是否可以控制将哪个推送服务用于浏览器(或(为所有浏览器开发自定义推送服务?
您基本上是正确的:推送服务充当服务工作线程和应用程序服务器之间的接口,此外,服务工作线程(或潜在的 Web 应用程序(将订阅信息发送到推送服务外部的应用程序服务器,因此应用程序服务器知道端点以及如何正确加密任何通知内容。
Google 在 Chrome 上使用 GCM/FCM,Mozilla 在 Firefox 桌面版中使用自己的 Push Service,同时使用 GCM/FCM 和/或自己的 Android 服务;请参阅此处的"Firefox 使用哪些信息来提供 Web Push?"部分。
在撰写本文时,Chrome,Firefox和Edge支持Push API,因此无需单独处理它们(WebKit不支持它(。
简短的回答:开发人员无法选择客户端使用哪种推送服务,但推送 API 的采用标准化了跨主要浏览器(不包括 WebKit(的服务工作者和 Web 推送。