首页 > 试题广场 >

WebSocket、SSE、轮询的选型与重连心跳设计。

[问答题]
WebSocket、SSE、轮询的选型与重连/心跳设计。
客户端服务器通信方式 --- 轮询、SSE与WebSocket:
1. 轮询:请求-响应模式,客户端定时发起HTTP请求,开销大延迟高

2. SSE:服务器向客户端单向通信,客户端发起一次HTTP请求,服务器保持连接,持续推送数据,开销小延迟低,但不适用于IE浏览器

3. WebSocket:全双工通信,通过 HTTP/1.1 Upgrade 请求建立一个独立的TCP连接,拥有独立的WS/WSS协议,开销极小延迟极低;
                  WebSocket的两个重要机制:心跳机制 与 断线重连
                  心跳机制:为了防止连接因空闲而被断开(许多网络设备会自动关闭长时间空闲的TCP连接),或快速判断假死连接;客户端定时向服务端发送预定义的心跳包,服务器收到ping后立即进行回复,若客户端未在指定时间内收到pong,则认为连接已断开,进行断线重连
                  断线重连:在连接意外断开时,能够自动恢复连接,对用户尽可能透明;具体实现为监听WebSocket提供的onClose和onError事件,在事件回调中执行重连。
发表于 2026-04-12 11:11:40 回复(0)
这三者是解决客户端与服务器实时通信问题的不同方案 轮询是客户端反复拉数据的原始方式,SSE是服务器向客户端单向推数据的标准模式,而WebSocket则是提供了真正意义上的双向实时对话通道 心跳机制:防止连接因空闲被断开,快速检测假死连接 断线重连:在连接意外断开后,能自动恢复连接,对用户尽可能透明
发表于 2026-02-24 13:29:25 回复(0)
SSE:单向服务端给客户端推 轮询:本质还是请求-响应模型 WebSocket:前两者还是基于 HTTP,而WebSocket是自定义的WS协议,真正实现了实时双向数据通信
发表于 2025-09-16 01:43:23 回复(1)