📅  最后修改于: 2023-12-03 15:06:24.519000             🧑  作者: Mango
在传统的 web 应用程序中,服务器通常在客户端发出请求时立即响应,但这种方式没有办法实时地向客户端推送数据。 服务器发送事件(SSE)则提供了一种基于HTTP协议的服务器推送机制,它允许服务器实时地向客户端推送数据,而无需客户端发出请求。
SSE 的工作原理是借助了浏览器对 HTTP/1.1 协议的支持,利用长连接实现了服务器向浏览器推送消息。 浏览器发起 SSE 请求,并且在建立连接后保持连接处于打开状态。服务器可以在需要的时间内向客户端推送消息,这些消息遵循特定的格式,一般为文本格式。浏览器收到这些消息后可以将它们展示在页面上,或者执行某些特定的操作。
SSE 可以用于实时广播、聊天、股票交易等场景,尤其在需要实时更新数据的 WEB 应用程序中。SSE 可以极大地简化开发者在这方面的工作,提高效率。
在 HTML5 中,SSE 通过 EventSource
对象实现。创建该对象的语法如下所示:
var source = new EventSource("server-url");
其中,服务器地址 server-url
是必填参数,它指定了向哪个地址发送 SSE 请求。
SSE 有很多与传统的轮询以及 WebSocket 相似之处,但也有自己独特的特点和优势:
总的来说,SSE 是一种轻量级且易于实现的实时服务器推送协议,它能够让 WEB 应用程序更加高效地实现实时更新数据的功能。