WebSocket握手协议
来源:互联网 发布:node 编辑:程序博客网 时间:2024/04/30 14:13
- 客户端握手请求(注意:键值之间有一个空格,行间有换行符号0x13x10或者说\r\n)
GET /WebSocket/LiveVideo HTTP/1.1
Upgrade: WebSocket
Connection: Upgrade
Host: localhost:8080 (客户端请求主机)
Origin: http://127.0.0.1 (来源网页地址)
Sec-WebSocket-Key1: 23 asdfJKj,asdjk
Sec_WebSocket-Key2: wewerw234 jij998
0x13x10 + 8个字节Sec_WebSocket-Key3值,没有键名(注意,这里的0x13x10的额外的,也就说有两个连续的0x13x10) - 服务端握手回复
HTTP/1.1 101 Web Socket Protocol Handshake
Upgrade: WebSocket
Connection: Upgrade
Sec-WebSocket-Origin: http://127.0.0.1 (来源网页地址)
Sec-WebSocket-Location: ws://localhost:8080/WebSocket/LiveVideo 16个字节的加密KEY
加密KEY算法:
Sec_WebSocket-Key1的产生方式:
(1)提取客户端请求的Sec_WebSocket-Key1中的数字符组成字符串k1
(2)转换字符串为8个字节的长整型intKey1
(3)统计客户端请求的Sec_WebSocket-Key1中的空格数k1Spaces
(4)intK1/k1Spaces取整k1FinalNum
(5)将k1FinalNum转换成字节数组再反转最终形成4个字节的>Sec_WebSocket-Key1Sec_WebSocket-Key2的产生方式:
(1)提取客户端请求的Sec_WebSocket-Key2中的数字符组成字符串k2
(2)转换字符串为8个字节的长整型intKey2
(3)统计客户端请求的Sec_WebSocket-Key2中的空格数k2Spaces
(4)intK2/k2Spaces取整k2FinalNum
(5)将k2FinalNum转换成字节数组再反转最终形成4个字节的Sec_WebSocket-Key2Sec_WebSocket-Key3的产生方式:
客户端握手请求的最后8个字节将Sec_WebSocket-Key1、Sec_WebSocket-Key2、>Sec_WebSocket-Key3合并成一个16字节数组
再进行MD5加密形成最终的16个字节的加密KEY
- 消息发送接收
客户端和服务端发送非握手文本消息时,消息以utf-8编码,并以0x00开头,0xFF结尾。
0 0
- WebSocket握手协议
- WebSocket握手协议
- WebSocket握手协议
- WebSocket握手协议
- Websocket协议之握手连接
- C/C++websocket握手协议
- WEBSOCKET协议判断、握手及反馈
- VC++实现的WebSocket服务器端握手协议
- websocket最新协议的握手实现
- 打开阶段握手——WebSocket协议翻译
- WebSocket(壹) 握手连接
- WebSocket握手总结
- websocket(一)--握手
- WebSocket(壹) 握手连接
- websocket协议
- WebSocket协议
- WebSocket协议
- Websocket协议
- 学生菜单
- JSON框架- jackson
- linux下redis的主从
- Angular+require单页面智能路由,链接参数化练手。
- Candies_poj3159_差分约束
- WebSocket握手协议
- 13.Spring学习笔记_通过注解配置Bean(by尚硅谷_佟刚)
- 肖特基二极管和快恢复二极管区别
- 常见的非阻塞队列
- Spring+Websocket实现消息的推送
- ViewPage的无限循环(五)
- QT5 检测 usb设备插拔
- openwrt下的 软件包的make分析
- java除法 保留两位小数