WebSocket
WebScoket是在单个TCP连接上进行全双工的协议。它的出现只要是为了解决服务器推送的问题。在HTTP/2出现之前,很多网站为了实现推送都采用轮询技术。由浏览器对服务器发出HTTP请求,然后由服务器返回最新的数据给浏览器。这种模式的缺点显而易见-客户端需要不断地向服务器发出请求,浪费了服务器和带宽资源。
在轮询技术中,较新的技术是Comet。但是Comet采用长连接来实现双向通信,会消耗服务器资源。
1、WebSocket的优点
WebSocket的出现,解决了普遍存在的服务器推送问题。具有以下优点:
2、客户端API
WebSocket构造函数
执行上面的语句之后,客户端就会与服务器进行连接。
webSocket.readyState
webSocket.readyState返回实例对象的当前状态,共有四种。
CONNECTING:值为0,表示正在连接。
OPEN:值为1,表示连接成功,可以通信了。
CLOSING:值为2,表示连接正在关闭。
CLOSED:值为3,表示连接已经关闭,或者打开连接失败。
webSocket.onopen
实例对象的onopen属性,用于指定连接成功后的回调函数。
webSocket.onclose
实例对象的onclose属性,用于指定连接关闭后的回调函数。
webSocket.onmessage
实例对象的onmessage属性,用于指定收到服务器数据后的回调函数。服务器的数据可能是文本(blob对象),也可能是二进制数据(ArrayBuffer对象)。
webSocket.send()
实例对象的send()方法用于向服务器发送数据。
webSocket.bufferedAmount
实例对象的bufferedAmount属性,表示还有多少个字节的二进制数据没有发出去。它可以用来判断是否结束。
webSocke.onerror
实例对象的onerror属性,用于指定报错时的回调函数。
3、参考文献
Last updated