Tagged

前端

A collection of 4 posts

开发

认识 WebSocket

即时通讯之路:WebSocket 的诞生2005年,随着 AJAX 技术的诞生和应用,由网页向服务端请求数据并动态渲染页面已经成为可能。那么由服务端向网页推送数据是否可行?HTTP 是一种只能由客户端发送的单向传输协议,要获取连续实时的信息确实很难。人们开始了这种花式实时获取信息技术的探索。 依靠 HTTP 协议,比较广泛的方式是轮询。客户端定时不断地发送请求,服务端把最新的数据返回。轮询时间越短,消息就越实时。这种方式弊端很明显。由于 HTTP 是无状态的,每一次请求都是完整的 HTTP 请求,大量轮询会不断携带无用的 Header,浪费资源。此外,如果服务器的消息不太多,那么大部分轰炸式的轮询请求其实都是无用的,效率很低。在实时对战游戏等一些要求低延时的场景,这种定时请求的设计也是没办法满足要求的。 轮询另一种技术是长轮询,这是对前面短轮询方案的一种改进。在长轮询技术中,客户端发送 HTTP 请求到服务端,服务端收到并保持此次连接。等到服务端有新的数据时再返回。接着客户端发起下一次请求,重新与服务器发起连接。 长轮询此外,还有其他一些更加 Hack 的方案,