从文档中我可以看出Push API和Server Sent Events 都是半双工的,但是为什么要使用两种不同的技术来实现相同的功能呢?Push API 有什么更重要的吗?
问问题
11031 次
2 回答
28
即使您的站点未打开,Push API 也允许服务器向客户端发送通知,因为它依赖于服务工作者。
只要用户使用您的站点,SSE(或 WebSockets)就可以工作。
ServiceWorker CookbookWeb Push
部分中有一些示例(带有文档)可以帮助您更好地理解这一点。
于 2016-02-09T10:49:04.340 回答
10
您使用服务器发送事件直接连接到您的网站,这相当容易。
Web Push 技术要复杂得多,用户的浏览器与浏览器供应商的推送服务器保持一个连接,该服务器收集和传递来自网站的所有推送(多路复用)。由于消息通过第三方服务器,因此它们应该被加密。要使用 Push API,您(在客户端)获取特定于浏览器的供应商的端点 URL,生成公共加密密钥,并将其发送回您的服务器以供使用。然后在您的服务器上,当您想要推送时,您使用密钥加密消息并将其推送到端点。
Firefox 保持与推送服务的活动连接,以便在它打开时接收推送消息。
这是 Web Push 的主要优势 - 您可以在用户打开浏览器时发送通知,他不必访问您的站点。缺点是您需要获得用户对此订阅的许可。另一个缺点是它目前还远未得到广泛支持。
于 2016-02-18T02:32:52.620 回答