1、概述
因为工作中用到了WebSocket,今天就对它进行一下整理。
首先介绍几个通信概念:
单工通信(simplex):只支持信号在一个方向上传输(正向或反向),任何时候不能改变信号的传输方向。比如,遥控器和电视、电脑和打印机,收音机。
半双工通信(half-duplex):允许信号在两个方向上传输,但某一时刻只允许信号在一个信道上单向传输。因此,半双工通信实际上是一种可切换方向的单向通信。如:对讲机。
全双工通信(pull-duplex):允许数据同时在两个方向上传输,有两个信道,允许同时进行双向传输。通信双发都有独立的接收和发送能力。全双工通信效率高,控制简单,但造价高。如:电话、手机。
2、WebSocket
WebSocket 是HTML5 提供的一种在单个TCP连接上进行全双工通信的协议。
WebSocket 只需要完成一次握手,客户端和服务器之间就可以创建持久性的连接,并进行双向数据传输。这就使得客户端和服务器之间的数据交换变得更加简单。
之前为了实现这一效果使用ajax轮询。轮询就是客户端在特定的时间间隔下,向服务器发出请求,然后由服务器返回最新的数据给客户端。缺点是:客户端需要不断的向服务器发出请求,然而请求可能包含较长的头部,其中真正有效的数据可能只是很小的一部分,这