最新要闻

广告

手机

港股异动 | 永利澳门(01128)涨超3%领涨博彩股 澳门7月入境旅客同比上升逾281倍 多家博企中报业绩亮眼

港股异动 | 永利澳门(01128)涨超3%领涨博彩股 澳门7月入境旅客同比上升逾281倍 多家博企中报业绩亮眼

郭晶晶夫妇带娃返港 亲自拖十几件行李低调接地气

郭晶晶夫妇带娃返港 亲自拖十几件行李低调接地气

家电

服务端向客户端发送消息Server-Sent Events

来源:博客园


(资料图片)

今天听说了服务端向客户端发消息的一种方式:Server-Sent Events

SSE使用的是HTTP协议,本质上是服务端向客户端发送流式数据。

HTTP不支持服务端向客户端发送请求,但是如果客户端向服务端发出请求后,服务端向客户端声明,接下来的数据是流信息,则连接不会关闭,服务端可以继续发送数据流。

除了IE,浏览器都支持。因为IE一直不支持,所以SSE的应用比较少。不过现在IE已经dead,没有人会再给它眼神。

在浏览器端使用EventSource对象发出请求,服务端用循环或者定时器持续地发送data。具体的代码示例可参考MDN。

chatGPT的实时计算结果就是用SSE实现的,然后前端做一个打字效果。

和WebSocket的比较:

  • SSE 使用 HTTP 协议,现有的服务器软件都支持。WebSocket 是一个独立协议。
  • SSE 属于轻量级,使用简单;WebSocket 协议相对复杂。
  • SSE 默认支持断线重连,WebSocket 需要自己实现。
  • SSE 一般只用来传送文本,二进制数据需要编码后传送,WebSocket 默认支持传送二进制数据。
  • SSE 支持自定义发送的消息类型。

MDN:Using server-sent events

入门教程:阮一峰Server-Sent Events

关键词: