WebSocket

1、WebSocket是什么

  WebSocket protocol 是HTML5一种新的协议。它实现了浏览器与服务器全双工通信(full-duplex)。一开始的握手需要借助HTTP请求完成。WebSocket的优势在于他的高实时性,以及传输过程中的低的资源消耗!

2、WebSocket原理

  Websocket是应用层第七层上的一个应用层协议,它必须依赖 HTTP 协议进行一次握手,握手成功后,数据就直接从 TCP 通道传输,与 HTTP 无关了。Websocket的数据传输是frame形式传输的。下面是打开浏览器的开发者工具,直观看到的websocket请求头:

 

3、实例化方法

var ws = new WebSocket("ws://www.liumumu.top:8181");

websocket 的实例化方法,带两个参数,第一个是url,即客户端请求连接服务器的地址和指定的端口。第二个参数是protocol,这个参数会在后续的demo中讲解。

4、事件监听

onopen

当服务器响应了客户端的连接请求并且握手成功,连接建立,促发onopen回调函数,所以数据在服务器与客户端的传递,必须在onopen回调函数被调用之后。

onmessage

当连接建立之后,客户端就可以发送数据到服务器端,同时也可以接收到服务器端发送过来的数据。onmessage api 就是当客户端接收到服务器发送过来的数据是,对数据进行处理的方法。

onerror

当一个错误发生时,onerror方法就会被促发。比如,客户端发送连接请求,服务器端没有响应。

onclose

当服务器和客户端的连接断开时,会出发onclose方法。 

5、其他方法

close(code,reason)

    客户端主动断开websocket连接。

    参数code int,定义断开连接的错误码,可选,默认为1000。可以传递的数值有1000,3000,4999.如果传递其他数字,会报一下错误:

    tips:如果是服务器主动断开连接,错误码为1006。

    参数reason string ,定义关闭原因,可选,默认为空。

6、属性

 readyState

获取websocket连接状态,只读属性,属性值如下表所示,

当客户端试图发送数据给服务器时,可以先通过readyState判断连接状态。

bufferedAmount

获取最近一次发送的数据长度,最大524288 

protocol

协议。初始化websocket时,传递的第一个参数。后面的demo会做进一步解释。

 

 

 

整理自:

http://blog.csdn.net/u010136741/article/details/51502509

http://blog.csdn.net/u010136741/article/details/51569688

 

posted @ 2018-03-25 18:41  flower_king  阅读(416)  评论(0)    收藏  举报