Websocket(一)——原理及基本属性和方法 (4)

基于以上分析,我们可以看到,websocket能够提供低延迟,高性能的客户端与服务端的双向数据通信。它颠覆了之前web开发的请求处理响应模式,并且提供了一种真正意义上的客户端请求,服务器推送数据的模式,特别适合实时数据交互应用开发。

Websocket(一)——原理及基本属性和方法

对比前面的http的客户端服务器的交互图可以发现WebSocket方式减少了很多TCP打开和关闭连接的操作,WebSocket的资源利用率高。

3.websocket的创建和常用的属性方法

以下 API 用于创建 WebSocket 对象。

var Socket = new WebSocket(url, [protocol] );

以上代码中的第一个参数 url, 指定连接的 URL。第二个参数 protocol 是可选的,指定了可接受的子协议。

WebSocket 属性

以下是 WebSocket 对象的属性。假定我们使用了以上代码创建了 Socket 对象:

属性描述
Socket.readyState  

只读属性 readyState 表示连接状态,可以是以下值:

0 - 表示连接尚未建立。

1 - 表示连接已建立,可以进行通信。

2 - 表示连接正在进行关闭。

3 - 表示连接已经关闭或者连接不能打开。

 
Socket.bufferedAmount  

只读属性 bufferedAmount 已被 send() 放入正在队列中等待传输,但是还没有发出的 UTF-8 文本字节数。

 

CONNECTING:值为0,表示正在连接。

OPEN:值为1,表示连接成功,可以通信了。

CLOSING:值为2,表示连接正在关闭。

CLOSED:值为3,表示连接已经关闭,或者打开连接失败。

var webSocket = new WebSocket(url); if(webSocket.readyState == webSocket.CONNECTING){ console.log(\'连接正在打开\'); } webSocket.onopen = function () { webSocket.send(consumerId); //可以看到 "连接正在打开"并没有被打印,说明open对应的就是OPEN状态; if(webSocket.readyState == webSocket.CONNECTING){ console.log(\'连接正在打开1\'); } if(webSocket.readyState == webSocket.OPEN){ console.log(\'连接已打开\'); } sendMsg(); window.weui.alert(\'已经建立连接\'); }; //连接关闭时触发 webSocket.onclose = function () { if(webSocket.readyState == webSocket.CLOSED){ console.log(\'连接已关闭\') } window.weui.alert(\'连接已断开\'); }; //连接 webSocket.onerror = function () { window.weui.alert(\'连接错误,请稍后再试\'); };  
   

Websocket(一)——原理及基本属性和方法

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwsdgs.html