websocket通信
2015-11-15 11:20:28 18 举报
WebSocket通信是一种在单个长连接上进行全双工通信的协议。它使得客户端和服务器之间可以实时双向传输数据,而无需频繁建立新的连接。这种通信方式适用于需要实时交互的场景,如在线聊天、实时数据传输等。与传统的HTTP请求-响应模式相比,WebSocket通信更加高效,因为它减少了不必要的网络延迟和资源消耗。在实际应用中,WebSocket通信通常与HTML5、JavaScript等技术结合使用,以实现丰富的前端功能。总之,WebSocket通信是一种强大的网络通信工具,为现代互联网应用提供了更便捷、高效的数据传输方式。
作者其他创作
大纲/内容
通信
发回客户端数据
长度
固定8位
*
???? ????
用websocket传输帧格式
=2^64-1
服务器端
258EAFA5-E914-47DA-95CA-C5AB0DC85B11
客户端
Sec-WebSocket-Protocol: chat
异或
兄弟数据…
连接完成
服务器端-客户端
随机产生,每次都不一样
客户端 - 服务器端
=125
Connection: Upgrade
Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==
Host: server.example.com
拼接固定字符串
1000 0001
客户端(js)
send(data)
接收信息
1111 1111
……
=65535
以\\\\作为结尾标志
就是TCP连接
一大坨数据
信息封装
双方在一个全双工的状态下相互通信
数据长度
GET / HTTP/1.1
客户端-服务器
websocket协议
Origin: http://example.com
持久的通道下进行通信
else
真实数据
建立连接
Upgrade: websocket
Sec-WebSocket-Version: 13
必须是有效的http request 格式;
1??? ????
一堆异或等操作
HTTP/1.1 101 Switching Protocols
receive(data)
解析客户端数据
BASE-64编码
发送信息
4字节 (32位)
1111 1110
每行以\\结尾
握手
握手阶段通过http协议
Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo=
mark码
浏览器的询问
创建 WebSocket对象
服务器的push
原始数据
SHA-1加密
onmessage(data)
HTTP request method 必须是GET,协议应不小于1.1 如: Get / HTTP/1.1;
服务器(python)
最高封装角度
Upgrade: websocket
0 条评论
下一页