个人理解 使服务器能主动向客服端发起消息 而不是一味的等待客户端的请求
用于服务器与客户端实时交互 替代了前端轮询这种耗时耗性能的方案
聊天室就可以用这种方式进行实时通信
路径标识 http=>ws https=>wss
传参 直接在路径后拼接 同等与url传参 网址?arg1=xx&arg2=xxx
通过new构造函数来创建websocket实例 const ws = new Websocket(url)
生命周期状态 readyState 有四个取值:connecting(正在连接) open(已连接) closing(正在关闭) closed(已关闭)
websocket的几个方法
onopen 已连接 此时可以执行一些操作 比如发送信息 ws.send(xxxx)
send 发送消息 参数可以文本 blob对象 ArrayBuffer对象 可以使用ws.bufferedAmout属性 监听文件发送进度
onmessage 监听接受信息事件 返回的数据可能是二进制数据或者是文本 event.data 也可以指定ws的数据格式 使用ws.binaryType属性设置 取值 blob/arraybuffer
onclose
第一次尝试websocket踩坑 前端按照教程创建好示例但是一直连接超时且关闭 中间出现了几种不同的错误信息 这里记录一下
Error during WebSocket handshake: Unexpected response code: 502 服务器响应错误
Connection closed before receiving a handshake response 连接异常超时关闭(耗时2min,错误码1006)