建立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
|
Connection与Upgrade表明这是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