ing…
背景
是什么
API
使用WebSocket构造函数创建webSocket对象。
var webSocket = new WebSocket('ws://localhost:8080');
构造器创建的时候就会开始建立连接(跟服务进行握手操作),并且readyState等于0。 如果握手成功,则会触发open事件,并且readyState等于1;反之如果导致握手失败(url不正确等),WebSocket会喷出error日志,并且触发error, close事件,并且readyState等于3。
属性
1. url
<String>,只读,webSocket服务地址。在创建WebSocket对象是传入的值。
url的方案是ws://或者wss://。
2. readState
<int>, 只读,表示WebSocket对象的状态。可取值的枚举:
WebSocket.CONNECTING (0):表示还未建立连接;
WebSocket.OPEN (1): 表示已经建立连接,可以和服务进行通信了;
WebSocket.CLOSING (2): 表示连接正在关闭连接,进行关闭连接握手;
WebSocket.CLOSED (3): 表示链接已经被关闭了。
3.protocol
<String>|<[String]>, 只读,子协议。
4.事件属性方法
还有4个事件对应的方法:onopen, onclose, onmessage, onerror。
方法
1.send(data)
向服务发送数据data。
注意只有readyState等于OPEN(1)时才能正确执行该方法,否则会抛异常。
data必须是字符串???
2.close
关闭连接。会触发close事件。被close的webScoket不能重新建立连接。
事件
兼容性
WebScoket, MozWebScoket
WebSocket服务
原理
握手
WebSocket协议中的握手过程通过http协议完成的。
Client### ?
Request:
Sec-WebSocket-Extensions
Sec-WebSocket-Key
Sec-WebSocket-Version
Upgrade:websocket
Response:
Sec-WebSocket-Accept