Sever-Sent Events(SSE) 服务器向 Web 客户端推送实战示例
创始人
2025-05-28 15:11:45

概念

Sever-Sent Events(SSE) 可实现由服务端主动推送消息给客户端

特点:

  • 基于 HTTP 协议
  • 由服务端向客户端发送消息,只能单向发送
  • 只支持文本消息
  • 当不通过 HTTP / 2 使用时,SSE会受到最大连接数的限制(Chrome、Firefox 每个浏览器最多 6 个连接)

事件流格式

事件流仅仅是一个简单的文本数据流,文本应使用 UTF-8 格式编码。
每条消息后面都由一个空行作为分隔符。

  • 例 1:客户端将收到 myevent 事件类型,消息为 xxxx\nyyyy

event: myevent
data: xxxx
data: yyyy

  • 例 2:未指定事件类型,默认为 message 事件类型,消息为 zzzz

data: zzzz

  • 例 3:冒号开头,表示注释,可以用来防止连接超时,服务器可以定期发送一条消息注释行,以保持连接不断。

: this is just a annotation

实战 Demo

  • 效果图

Server-Sents Events

  • Web 客户端


SSE Demo

  • 服务端
// 发送 ping 事件类型消息echo "event: ping\n";echo 'data: {"time": "' . date('Y-m-d H:i:s'). '"}';echo "\n\n";if (time() % 5 === 0) {// 未指定事件类型,默认为 message 事件类型echo 'data: This is a message at time ' . date('Y-m-d H:i:s') . "\n\n";}ob_end_flush();flush();sleep(1);
}

参考

  • https://developer.mozilla.org/zh-CN/docs/Web/API/Server-sent_events
  • https://zhuanlan.zhihu.com/p/444011262
  • https://github.red/talking-about-eventstream/

相关内容

热门资讯

北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...