一、WebSocket协议
1、介绍
websocket是一种基于一个TCP连接的全双工的通讯方式,也就是说,服务端可以主动推数据到客户端,客户端也可以发送数据到服务端。
在webcoket中,是由客户端先发送请求头信息到服务端,服务端对请求进行检查,如果是合法的请求头,则会发送握手信息( handshake)到客户端。同是为每个客户端建产一个socket用来通信。这个socket有输入流,也有输出流,是一个全双工的tcp通信端口。
其中客户端的请求头和服务端的握手信息都是每行一个的键值对信息,且字符编码为ASCII 编码。这个很重要,因为在传送数据的时候,是以utf8做编码的。
Websocket 由两部分组成,一部分是浏览器中的WebSocket API(隶属于HTML5规范), 由W3C组织制订;一部分是WebSocket协议(可以用任何语言来实现), 由IETF组织制订。
2、流程
握手:建产握手。这个是整个websocket协议中最重要的一个环节。因为握手是建立连接,或进行下一步通信的关键,也是关系到你是否能和其它遵寻html5 websocket协议的浏览器(如chrome,fiirfox4.0等)进行通信的关键。
当握手成功后,就是进行数据传送了。注意 ,这个时候tcp连接已在经建立了,现在客户发送上来的时候就是纯纯的数据了。服务端要判断什么时候是一次数据请求的开始