共计 816 个字符,预计需要花费 3 分钟才能阅读完成。
是什么
WebSocket,是一种网络传输协定
可在单个 TCP 连贯上进行全双工通信
服务器与客户端都能被动的向对方发送或承受数据
特点
1. 全双工
2. 二进制帧
3. 协定名
引入 ws 和 wss 别离代表明文和密文的 websocket 协定
4. 握手:要有一个握手过程
格局
客户端发送的格局
GET /chat HTTP/1.1
Host: server.example.com
Upgrade: websocket // 必须设置 Websocket,示意心愿降级到 Websocket 协定
Connection: Upgrade // 必须设置 Upgrade,示意客户端心愿连贯降级
Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ== // 客户端发送的一个 base64 编码的密文,用于简略的认证秘钥
Origin: http://example.com
Sec-WebSocket-Protocol: chat, superchat
Sec-WebSocket-Version: 13 // 持的 Websocket 版本
服务端返回的数据格式:
HTTP/1.1 101 Switching Protocols // 示意服务端承受 WebSocket 协定的客户端连贯
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo=Sec- // 验证客户端申请报文 把申请头里“Sec-WebSocket-Key”的值,加上一个专用的 UUID
WebSocket-Protocol: chat
长处
1. 较少的管制开销,数据包头部协定较小,不同于 http 每次申请须要携带残缺的头部
2. 更强的实时性
3. 放弃创连贯状态 创立通信后,可省略状态信息
4. 更好的二进制反对
5. 反对扩大:用户能够扩大 websocket 协定、实现局部自定义的子协定
6. 更好的压缩成果,进步压缩率
利用场景
实时场景:弹幕 媒体聊天 协同编辑
正文完