Html5——WebSocket
2021-03-09 18:30
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
url的方案是ws://或者wss://。
2. readState
WebSocket.CONNECTING (0):表示还未建立连接;
WebSocket.OPEN (1): 表示已经建立连接,可以和服务进行通信了;
WebSocket.CLOSING (2): 表示连接正在关闭连接,进行关闭连接握手;
WebSocket.CLOSED (3): 表示链接已经被关闭了。
3.protocol
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
参考
- 介绍:https://www.webcodegeeks.com/...
- 规范:https://www.w3.org/TR/2011/WD...
- API:https://developer.mozilla.org...
- 介绍:https://www.websocket.org/qua...
- WebSocket数据包协议详解: http://www.cnblogs.com/smark/...