SSE 和 Server Push(http2.0)

本文介绍了HTML5的Server-SentEvents(SSE)和HTTP2.0的ServerPush技术,它们都是服务端推送的解决方案,但SSE基于HTTP长连接,适合实时消息推送,而ServerPush用于主动推送资源以提升性能。文中还讨论了两者的特点、使用场景及潜在问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SSE(Server-Sent Events)

SSE,基于事件流的服务端推送,是HTML5的新特性,除开IE/Edge的主流浏览器都支持。它允许客户端与服务端建立连接后,服务端单方面向客户端推送实时消息。是基于HTTP的长连接实现的。

特性

  • 建立连接后,只能服务端向客户端推送消息
  • 基于HTTP长连接,消息都是从同一个TCP返回
  • 实时性,服务端向客户端推送客户端需要的,或者服务端想推送的消息

关键

  • 前端通过EventSource或者fetch发起请求
    • fetch时需要指定Accept:text/event-stream
    • 通过onmessage拿到流数据
  • 请求是GET请求
  • 服务端返回 Content-Type:text/event-stream
  • 数据格式
// id: 当前消息的 id
// event: 当前消息的类型,根据业务需要自行定义。新闻:news
// data - 这条消息的内容,只能为文本类型 —— 也可以是JSON字符串或者自定义的字符串格式
// retry - 值必须是数字 —— 如果连接中断,客户端应该间隔多少毫秒再尝试重新连接
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值