xingbofeng.github.io
xingbofeng.github.io copied to clipboard
服务端推送的几种方式
服务端推送是现今Web
开发过程中最常见的需求。例如:
- 即时聊天工具
- H5网络游戏
- 消息通知
一般的服务器推送包括:
- 最简单的是客户端轮询的方式,在客户端创建一个定时器,每隔一定的时间去请求服务端,每次请求检查状态变化以判断服务端是否有新数据更新。
- 基于 AJAX 的长轮询(
long-polling
)方式,服务器在一段时间后再返回信息; -
HTTP Streaming
,通过iframe
和<script>
标签完成数据的传输; -
TCP
长连接/WebSocket
,可以实现服务器主动发送数据至网页端,它和HTTP
一样,是一个基于HTTP
的应用层协议,跑的是TCP
,所以本质上还是个长连接,双向通信,意味着服务器端和客户端可以同时发送并响应请求,而不再像HTTP
的请求和响应 -
SSE: Server-Sent Events
,这是通过http
协议变通实现的,通过服务端向客户端声明,接下来是要发送的是流信息,本质上就是完成一次耗时长的下载。