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协议的主要内容,如果未能解决你的问题,请参考以下文章