websocket协议

Posted 迷你世界

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了websocket协议相关的知识,希望对你有一定的参考价值。

websocket是基于tcp的一种双向通讯协议,弥补了http协议单向通信的不足。

需要在客户端发送的请求头中加上以下信息:

* 必须是有效的http request 格式; 
* HTTP request method 必须是GET,协议应不小于1.1 如: Get / HTTP/1.1; 
* 必须包括Upgrade头域,并且其值为”websocket”; 
* 必须包括”Connection” 头域,并且其值为”Upgrade”; 
* 必须包括”Sec-WebSocket-Key”头域,其值采用base64编码的随机16字节长的字符序列; 
* 如果请求来自浏览器客户端,还必须包括Origin头域 。 该头域用于防止未授权的跨域脚本攻击,服务器可以从Origin决定是否接受该WebSocket连接; 

* 必须包括”Sec-webSocket-Version” 头域,当前值必须是13; 

应答包说明: 
*必须包括Upgrade头域,并且其值为”websocket”; 
*必须包括Connection头域,并且其值为”Upgrade”; 
*必须包括Sec-WebSocket-Accept头域,其值是将请求包“Sec-WebSocket-Key”的值,与”258EAFA5-E914-47DA-95CA-C5AB0DC85B11″这个字符串进行拼接,然后对拼接后的字符串进行sha-1运算,再进行base64编码,就是“Sec-WebSocket-Accept”的值; 
*应答包中冒号后面有一个空格; 
*最后需要两个空行作为应答包结束。

Java中websocketServer创建websocket服务器端,重载onopen,onmessage,onclose,onerror方法。

 











以上是关于websocket协议的主要内容,如果未能解决你的问题,请参考以下文章

WebSocket协议 学习笔记

WebSocket协议-原理篇

websocket协议

WebSocket协议分析

WebSocket --为什么引入WebSocket协议

WebSocket协议探究:MQTT子协议