xingbofeng.github.io icon indicating copy to clipboard operation
xingbofeng.github.io copied to clipboard

服务端推送的几种方式

Open xingbofeng opened this issue 5 years ago • 0 comments

服务端推送是现今Web开发过程中最常见的需求。例如:

  • 即时聊天工具
  • H5网络游戏
  • 消息通知

一般的服务器推送包括:

  • 最简单的是客户端轮询的方式,在客户端创建一个定时器,每隔一定的时间去请求服务端,每次请求检查状态变化以判断服务端是否有新数据更新。
  • 基于 AJAX 的长轮询(long-polling)方式,服务器在一段时间后再返回信息;
  • HTTP Streaming,通过iframe<script>标签完成数据的传输;
  • TCP长连接/WebSocket,可以实现服务器主动发送数据至网页端,它和HTTP一样,是一个基于HTTP的应用层协议,跑的是TCP,所以本质上还是个长连接,双向通信,意味着服务器端和客户端可以同时发送并响应请求,而不再像HTTP的请求和响应
  • SSE: Server-Sent Events,这是通过http协议变通实现的,通过服务端向客户端声明,接下来是要发送的是流信息,本质上就是完成一次耗时长的下载。

xingbofeng avatar Jul 27 '18 12:07 xingbofeng