首页
学习
活动
专区
圈层
工具
发布
技术百科首页 >SSE >SSE与WebSocket有什么区别?

SSE与WebSocket有什么区别?

词条归属:SSE

1. 通信方向差异

SSE 是单向通信协议,仅支持服务器向客户端推送数据,客户端无法通过同一连接向服务器发送消息,如需上传数据需额外发起HTTP请求。WebSocket 是双向全双工协议,客户端和服务器在任何时候都可以互相发送数据,适合在线聊天、多人协作等双向交互场景。

2. 协议底层差异

SSE 构建在标准HTTP/HTTPS协议之上,无需协议升级,兼容所有现有网络基础设施(负载均衡器、CDN 、代理服务器等)。WebSocket 需要先通过HTTP Upgrade握手升级为专用的WebSocket协议(ws://或wss://),部分严格的公司代理或防火墙可能会拦截Upgrade请求导致连接失败。

3. 数据格式差异

SSE 仅支持UTF-8编码的文本数据传输,消息格式由W3C规范严格定义(data:、event:、id:、retry:字段)。WebSocket 支持文本和二进制数据帧,可传输图片、文件、音视频流等二进制内容,数据格式由应用层自行定义。

4. 重连机制差异

SSE 在浏览器端内置了自动重连机制,连接断开后浏览器会自动尝试重新连接,并可通过Last-Event-ID请求头实现断线期间的消息续传,开发者无需编写重连代码。WebSocket没有内置重连机制,需要开发者手动实现心跳检测、重连逻辑和消息重发策略。

5. 浏览器连接数限制

在HTTP/1.1环境下,浏览器对同一域名的并发HTTP 连接数有限制(通常为6个),每个SSE连接会占用一个连接槽位。WebSocket 连接不占用HTTP连接限额,更适合需要大量并发连接的场景。HTTP/2环境下该限制已大幅缓解,多个SSE流可复用同一TCP连接。

相关文章
SpringBoot之WebSocket和SSE
前言: 传统的网页都是浏览器向服务器“查询”数据,但是很多场合,最有效的方式是服务器向浏览器“发送”数据。比如,每当收到新的电子邮件,服务器就向浏览器发送一个“通知”,这要比浏览器按时向服务器查询(polling)更有效率。
王念博客
2019-07-24
1.7K0
Websocket 的 ws 协议和 wss 有什么区别
在实时通信场景(聊天、协同编辑、行情数据)里,我们经常会看到 ws:// 与 wss:// 两种协议前缀。很多同学知道它们和 WebSocket 有关,却不一定清楚到底差别在哪、与 HTTP/HTTPS 有什么关系。本篇文章将延续通过“原理 + 步骤 + 示例”的讲解方式,带你彻底搞懂 ws 与 wss。
用户2485682
2025-11-25
2.9K0
Comet,SSE,WebSocket前后端的实现
Comet(服务器推送)的两种方式 短轮询 页面定时向服务器发送请求, 步骤为:建立连接——数据传输——关闭连接...建立连接——数据传输——关闭连接 //前端js var xhr = new XMLHttpRequest(); setInterval(()=>{ xhr.onreadystatechange = function () { if (xhr.readyState == 4) { let result = xhr.responseText
chuchur
2022-10-25
1.3K0
【总结】1892- 理解 WebSocket 和 SSE
在 Web 应用中实现实时通信是一个常见需求。WebSocket 和 Server-Sent Events (SSE) 是实现这一目标的两种关键技术。本文将更深入地探讨这两种技术,并提供一些实际的使用示例。
pingan8787
2023-12-13
2.2K0
WebSocket vs SSE深度对比分析
还在纠结项目到底用WebSocket还是SSE?这不是一个"选哪个都行"的问题——选错了,会直接影响你的应用性能、服务器成本,甚至用户体验。
前端达人
2026-03-12
6821
点击加载更多
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
领券