服务端向客户端发送消息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 支持自定义发送的消息类型。
分类:
计算机网络
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律