建立WebSocket连接
WebSocket是一种双向全双工的应用层协议,通常用在要求低延迟或需要服务器主动发送请求的地方。WSS与WS就像HTTPS与HTTP的关系一样,多了TLS加密层。1var w 2020-08-16 21:33:06 Author: hosch3n.github.io(查看原文) 阅读量:70 收藏

WebSocket是一种双向全双工的应用层协议,通常用在要求低延迟或需要服务器主动发送请求的地方。WSS与WS就像HTTPS与HTTP的关系一样,多了TLS加密层。

1
var ws = new WebSocket("wss://xxx.com/func");

首次建立WS连接时会通过HTTP协议握手协商:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
GET /func HTTP/1.1
Host: xxx.com
...
Connection: keep-alive, Upgrade
Upgrade: websocket
Sec-WebSocket-Version: 13
Sec-WebSocket-Key: QKVMhgEVGz7jTFD5PIizrQ==


HTTP/1.1 101 Switching Protocol
Connection: Upgrade
Upgrade: websocket
Sec-WebSocket-Accept: GUgfO45/U2Oo5uUkpUR3jnm3zcA=
Content-Length: 0


ConnectionUpgrade表明这是WS握手,Sec-WebSocket-Version表示客户端希望使用的版本,Sec-WebSocket-Key为随机产生的Base64编码,Sec-WebSocket-Accept会响应该随机值的哈希。

握手成功后便可基于WS协议传输任意格式的数据,常用JSON:ws.send({"a": 1});


文章来源: https://hosch3n.github.io/2020/08/16/%E5%BB%BA%E7%AB%8BWebSocket%E8%BF%9E%E6%8E%A5/
如有侵权请联系:admin#unsafe.sh