万字长文,一篇吃透WebSocket:概念、原理、易错常识、动手实践(18)

2023-04-29 来源:飞速影视
WebSocket connection to "ws://localhost:8888/"failed: Error during WebSocket handshake: Incorrect "Sec-WebSocket-Accept"header value
如果你的 WebSocket 服务器要支持子协议的话,你可以参考以下代码进行子协议的处理,这里就不继续展开介绍了。
// 从请求头中读取子协议
const protocol = req.headers["sec-websocket-protocol"];
// 如果包含子协议,则解析子协议
const protocols = !protocol ? [] : protocol.split(",").map((s) => s.trim());
// 简单起见,我们仅判断是否含有JSON子协议
if(protocols.includes("json")) {
responseHeaders.push(`Sec-WebSocket-Protocol: json`);
}
好的,WebSocket 握手协议相关的内容基本已经介绍完了。下一步我们来介绍开发消息通信功能需要了解的一些基础知识。

5.4 消息通信基础


在 WebSocket 协议中,数据是通过一系列数据帧来进行传输的。
为了避免由于网络中介(例如一些拦截代理)或者一些安全问题,客户端必须在它发送到服务器的所有帧中添加掩码。服务端收到没有添加掩码的数据帧以后,必须立即关闭连接。
5.4.1)数据帧格式:
要实现消息通信,我们就必须了解 WebSocket 数据帧的格式:

万字长文,一篇吃透WebSocket:概念、原理、易错常识、动手实践


可能有一些小伙伴看到上面的内容之后,就开始有点 “懵逼” 了。
下面我们来结合实际的数据帧来进一步分析一下:

万字长文,一篇吃透WebSocket:概念、原理、易错常识、动手实践


相关影视
合作伙伴
本站仅为学习交流之用,所有视频和图片均来自互联网收集而来,版权归原创者所有,本网站只提供web页面服务,并不提供资源存储,也不参与录制、上传
若本站收录的节目无意侵犯了贵司版权,请发邮件(我们会在3个工作日内删除侵权内容,谢谢。)

www.fs94.org-飞速影视 粤ICP备74369512号