技术博客 > 正文

WebSocket协议是什么

2022-04-08

WebSocket协议主要解决了传统http通信中客户端不能及时从服务器获取更新数据的问题,在客户端和服务器之间建立双向连接,以基于事件的形式扩展Web应用,提升时效性和应用性能。

◆WebSocket背景

随着互联网行业的快速发展,带宽逐步提高,用户数也越来越庞大。互联网的呈现内容开始变得更加丰富,更加动态。客户对网页的互动性、实时性、体验要求也越来越高,催生了视频播放、实时游戏、实时聊天、直播等。

传统的HTTP通信都是由客户端来控制,为了更及时地与服务器沟通获取更新数据,只能采用长连接、定期轮询、流操作等手段,不止时效性不能保证,而且对资源的消耗非常大。WebSocket协议就在这种情况下诞生了。

WebSocket 尤其适用于高并发及需要实时响应的场景,如:

•社交订阅的消息实时更新;
•微信公众号内互动;
•股票基金实时走势;
•体育实况更新;
•多媒体聊天;
•基于位置的网络应用(比如地理位置获取)等。

◆关于WebSocket

WebSocket是HTML5的技术之一,基于TCP/IP 协议实现,支持客户端与服务器之间进行全双工通信。将原本只能由客户端主动向服务器请求的模式,扩展到服务器可以主动推送消息给客户端,能更好的节省服务器资源和带宽,并达到实时通讯。

在实现WebSocket连线过程中,首先需要客户端发起WebSocket建连请求,然后服务器返回响应,这个过程被称为“握手”。在握手成功之后,客户端和服务端就建立了双向通道,可以互相传送数据。

传统的HTTP和WebSocket交互方式区别如下:

  • 传统HTTP:

1.轮询:客户端设置一个时间间隔,定时向服务器发送request询问有无新数据,不论有无新数据服务器都立即返回response;
2.长连接(long poll):客户端发送request请求新数据,服务端会阻塞请求,直到有新数据后才返回response;

  • Websocket:
    建立连接后,客户端和服务端可以保持持久链接,一旦数据有更新,服务端会主动推送给客户端。

穿过数字经济的短炒热潮,看老牌CDN企业的长期逻辑
图1 交互方式比较

WebSocket协议可实现以下功能:

•提升实时性—客户端发送和接收消息都是在同一个持久连接上发起。
•降低资源消耗—节省了网络带宽资源。
•服务器反客为主–服务器不再被动地接收到请求后才返回数据,而是可以主动推送消息给客户端,解决WebSocket协议之前双向通信的低效率。

价值优势

•网宿CDN支持WebSocket协议,携手客户共同扩展Web应用,增加用户体验,提升应用性能。

•在海量并发及客户端与服务器交互负载流量大的情况下,极大的节省了网络带宽资源的消耗。