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/

相关内容

热门资讯

荼蘼什么意思 岁月缱绻葳蕤生香... 感谢作者【辰夕】的原创独家授权分享编辑整理:【多肉植物百科】百科君坐标:云南 曲靖春而至,季节流转,...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...