📌 面试答不上的问题
3️⃣ SSE vs WebSocket 对比
| 特性 | SSE | WebSocket |
|---|---|---|
| 连接类型 | 基于 HTTP 1.1 | 基于 TCP |
| 数据流 | 服务器 → 客户端(单向) | 客户端 ⇄ 服务器(双向) |
| 传输格式 | 仅支持文本 | 支持文本 & 二进制 |
| 适用场景 | 实时推送(通知、股票更新) | 交互性强(聊天、游戏、协作) |
| 兼容性 | 现代浏览器支持(IE 不支持) | 现代浏览器支持 |
| 连接管理 | 断开后自动重连 | 需手动重连 |
📌 总结:
- SSE 适合 单向推送 场景(如消息通知、天气更新)。
- WebSocket 适合 双向通信 场景(如在线聊天、多人协作)。
4️⃣ 面试回答示例
面试官:你能介绍一下 SSE 和 WebSocket 的区别吗?
你的回答:
SSE(Server-Sent Events)和 WebSocket 都用于实时通信,但它们的原理和适用场景不同。
SSE 基于 HTTP 1.1,只支持服务器向客户端推送数据,适用于新闻推送、股票更新等轻量级场景。
WebSocket 是基于 TCP 的全双工通信协议,支持客户端和服务器双向交互,适用于聊天、协同编辑、游戏等需要高频通信的应用。
如果需要单向消息推送,SSE 更轻量;如果需要双向通信,WebSocket 更适合。 再者WebSocket更适配多端,而SSE在移动端目前仅支持微信小程序,抖音/支付宝这些目前暂不支持。