当前位置: 首页 > 知识库问答 >
问题:

推送API和服务器发送事件之间有什么区别?

葛和志
2023-03-14

从文档中我可以看出推送API和服务器发送事件都是半双工的,但为什么两种不同的技术具有相同的功能?推送API中是否有更重要的内容?

共有2个答案

林星阑
2023-03-14

您使用服务器发送事件直接连接到您的网站,这是相当容易的。

Web推送技术要复杂得多,用户的浏览器与浏览器供应商的推送服务器保持一个连接,该服务器收集并提供来自网站的所有推送(多路复用)。由于消息通过第三方服务器传递,因此应该对其进行加密。要使用推送API,您(在客户端)需要获取特定于浏览器的供应商的endpointURL,生成公共加密密钥,然后将其发送回服务器以供使用。然后,在您的服务器上,当您想要推送消息时,使用密钥加密消息并将其推送到endpoint。

网络推送的一般信息

Firefox保持与推送服务的活动连接,以便在推送服务打开时接收推送消息。

这是Web推送的主要优点-用户打开浏览器时,您就可以发送通知,而不必访问您的站点。缺点是您需要获得用户对此订阅的权限。另一个缺点是,它目前远未得到广泛支持。

Push API的技术信息

董鸣
2023-03-14

推送API允许服务器向客户端发送通知,即使您的站点未打开,因为它依赖于服务人员。

只要用户正在使用您的站点,SSE(或WebSocket)就可以工作。

ServiceWorker Cookbook的Web Push部分中有一些示例(带有留档),可以帮助您更好地理解这一点。

 类似资料:
  • 我还查看了https://www.html5rocks.com/en/tutorials/eventsource/basics/#disqus_thread设置ssses的教程,这似乎是我想象的HTTP流的设置方式。

  • http://www.html5rocks.com/en/tutorials/eventsource/basics/ 但是,我不明白一个重要的概念--是什么触发了服务器上导致消息发送的事件? 换句话说--在HTML5示例中--服务器只发送一次时间戳: 如果我建立一个实际的例子--例如,一个Facebook风格的“墙”或一个股票报价器,在这个例子中,每当某个数据发生变化时,服务器就会向客户机“推送”

  • 当前,我已经在Express API上为服务器发送的事件设置了一个endpoint,当我从cmd调用endpoint时,使用http://localhost:3000/v1/devices,我得到了流,但当我使用新事件源从Vue应用程序调用endpoint时('http://localhost:3000/v1/devices“)但它只会继续加载,而不会流式传输任何数据。是否有我目前没有做的事情要做

  • 概述 客户端代码 概述 建立连接 open事件 message事件 error事件 自定义事件 close方法 数据格式 概述 data:数据栏 id:数据标识符 event栏:自定义信息类型 retry:最大间隔时间 服务器代码 参考链接 概述 传统的网页都是浏览器向服务器“查询”数据,但是很多场合,最有效的方式是服务器向浏览器“发送”数据。比如,每当收到新的电子邮件,服务器就向浏览器发送一个“

  • 概述 客户端代码 概述 建立连接 open事件 message事件 error事件 自定义事件 close方法 数据格式 概述 data:数据栏 id:数据标识符 event栏:自定义信息类型 retry:最大间隔时间 服务器代码 参考链接 概述 传统的网页都是浏览器向服务器“查询”数据,但是很多场合,最有效的方式是服务器向浏览器“发送”数据。比如,每当收到新的电子邮件,服务器就向浏览器发送一个“

  • 4)服务器发送的事件使用keep-alive连接,但据我所知,SSE不使用流水线。相反,它们设法处理一个请求的多个响应,或者它们只是在下一个带有事件的响应到达时发送另一个请求。哪种猜测是正确的? 5)一个TCP连接意味着一个插座?一个插座意味着一个TCP连接?关闭/打开插座意味着关闭/打开TCP连接?