WebSocket

一、socket的由来

为了实现客户端和服务器端的双向通信,最开始想出的解决办法是不断的定时请求,但是耗流量多,也会消耗CPU的利用率。如图:

![poll.png](http://upload-images.jianshu.io/upload_images/1746525-7d8430339463fbc6.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

后来又想出了改进版的长轮询Long polling,就是客户端发送HTTP给服务器之后,看有没有新消息,如果没有新消息,就一直等待。当有新消息的时候,才会返回给客户端。在某种程度上减小了网络带宽和CPU利用率等问题。但还是不理想。如图:

![Long polling.png](http://upload-images.jianshu.io/upload_images/1746525-0f59e6fda25c020f.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

最后WebSocket出现了,即实现了客户端和服务器端的双向通信,而且协议的头部又没有HTTP的Header那么大,最重要的是效率也大幅提高。如图:

![socket.png](http://upload-images.jianshu.io/upload_images/1746525-d4d745586af3aa0d.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

你可能感兴趣的:(WebSocket)