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