Javascript中的WebSocket如何工作?

admin 百科 11
WebSocket通过HTTP升级握手建立持久全双工连接:客户端发含Upgrade、Sec-WebSocket-Key的请求,服务器返回101状态及Sec-WebSocket-Accept校验;连接后通过onopen/onmessage/onclose/onerror事件收发数据,以帧而非HTTP报文传输,支持文本、二进制、Ping/Pong;需用wss://加密,服务器需校验Origin,原生无自动重连。

Javascript中的WebSocket如何工作?-第1张图片-佛山资讯网

WebSocket 在 JavaScript 中通过一次 HTTP 握手建立持久、全双工的 TCP 连接,之后客户端和服务器可随时互发数据,无需重复请求。

握手阶段:用 HTTP 升级协议

浏览器发起一个带特殊头的 HTTP 请求:

  • Upgrade: websocketConnection: Upgrade 表明想切换协议
  • Sec-WebSocket-Key 是客户端生成的随机 Base64 字符串,用于防伪造
  • 服务器验证后,返回 HTTP 101 Switching Protocols 状态码
  • 响应头含 Sec-WebSocket-Accept —— 由客户端密钥经固定算法计算得出,供客户端校验

握手成功,连接就脱离 HTTP,进入 WebSocket 帧通信模式。

连接建立后:监听事件收发消息

JS 使用 WebSocket 构造函数创建实例,并绑定关键事件:

立即学习“Java免费学习笔记(深入)”;

标签: javascript java js 编码 浏览器 websocket switch 跨域 状态码

发布评论 0条评论)

还木有评论哦,快来抢沙发吧~