WebSocket对象特性
- 1readyState:WebSocket只读属性,表示WebSocket的连接状态。
WebSocket.OPEN//连接已经建立,值为1
WebSocket.CONNECTING//连接正在创建中,但没有成功创建,值为0
WebSocket.CLOSING//连接正在关闭,值为2
WebSocket.OPEN//连接已经关闭,值为3
WebSocket开始创建时,readyState为0,代表连接正在创建。这时在WebSocket成功创建连接之前,向服务器发送数据或者发送数据,是不行的,系统会报错。
//检查WebSocket是否打开
function SendHandler(data){
if(ws.readyState==WebSocket.OPEN){
ws.send(data);
}else{
//do something else
}
}
- 2 bufferedAmount 数据缓冲量
在向服务器发送大量数据时,数据通过互联网传输,数据过大时并不一定能立即传输到服务端。数据过大时,WebSocket内部机制会将数据排入队列。bufferedAmount这个特性就是用来检查已经进入队列,但是尚未发送到服务器的字节数。
下列通过bufferedAmount展示了向服务端传送数据的速率,避免了网络饱和。
//设定缓冲量字节数
var MaxBuffer=2000;
//创建WebSocket
var fullUrl = "ws://192.168.0.200:8844;
var ws = new WebSocket(fullUrl);
ws.onopen = function (e) {
SetInterval(function(){
if(ws.bufferedAmount<MaxBuffer){
ws.send("data");//发送数据
}
});
}
可以在关闭连接前,检查缓存数据是否都应经发送到服务器端,避免数据丢失的现象。
- 3 protocol
用于指定客户端和服务器通信时采用的协议。