Websocket原理
2017-08-06 15:31
106 查看
WebSocket是html5出的协议,是基于http协议的。
我们先看一个典型的Websocket握手:
GET /chat HTTP/1.1
Host: server.example.com
Upgrade: websocket //
Connection: Upgrade //Upgrade和Connection是Websocket的核心,声明了发起的是Websocket协议
Sec-WebSocket-Key: x3JJHMbDL1EzLkh9GBhXDw==
Sec-WebSocket-Protocol: chat, superchat
Sec-WebSocket-Version: 13 //告诉服务器所需要的版本
Origin: http://example.com然后服务器会返回下列东西,表示成功建立Websocket连接 HTTP/1.1 101 Switching Protocols
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Accept: HSmrc0sMlYUkAGmm5OPpG2HaGWk=
Sec-WebSocket-Protocol: chat我们知道AJAX轮询是让客户端隔几秒发送一次请求,询问服务器是否有新信息,long pool采用的也是采用轮询方式,不过采用了阻塞模型(一直打电话,没有收到就不挂电话),这两种方式都非常消耗资源。
而Websocket协议下,服务器端可以主动推送信息给客户端。情景如下:
客户端:啦啦啦,我要建立Websocket协议,需要的服务:chat,Websocket协议版本:17(HTTP Request)
服务端:ok,确认,已升级为Websocket协议(HTTP Protocols Switched)
客户端:麻烦你有信息的时候推送给我噢。。
服务端:ok,有的时候会告诉你的。
服务端:balabalabalabala
服务端:哈哈哈哈哈啊哈哈哈哈
服务端:笑死我了哈哈哈哈哈哈哈
就变成了这样,只需要经过一次HTTP请求,就可以做到源源不断的信息传送了。(在程序设计中,这种设计叫做回调,即:你有信息了再来通知我,而不是我傻乎乎的每次跑来问你 )
我们先看一个典型的Websocket握手:
GET /chat HTTP/1.1
Host: server.example.com
Upgrade: websocket //
Connection: Upgrade //Upgrade和Connection是Websocket的核心,声明了发起的是Websocket协议
Sec-WebSocket-Key: x3JJHMbDL1EzLkh9GBhXDw==
Sec-WebSocket-Protocol: chat, superchat
Sec-WebSocket-Version: 13 //告诉服务器所需要的版本
Origin: http://example.com然后服务器会返回下列东西,表示成功建立Websocket连接 HTTP/1.1 101 Switching Protocols
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Accept: HSmrc0sMlYUkAGmm5OPpG2HaGWk=
Sec-WebSocket-Protocol: chat我们知道AJAX轮询是让客户端隔几秒发送一次请求,询问服务器是否有新信息,long pool采用的也是采用轮询方式,不过采用了阻塞模型(一直打电话,没有收到就不挂电话),这两种方式都非常消耗资源。
而Websocket协议下,服务器端可以主动推送信息给客户端。情景如下:
客户端:啦啦啦,我要建立Websocket协议,需要的服务:chat,Websocket协议版本:17(HTTP Request)
服务端:ok,确认,已升级为Websocket协议(HTTP Protocols Switched)
客户端:麻烦你有信息的时候推送给我噢。。
服务端:ok,有的时候会告诉你的。
服务端:balabalabalabala
服务端:哈哈哈哈哈啊哈哈哈哈
服务端:笑死我了哈哈哈哈哈哈哈
就变成了这样,只需要经过一次HTTP请求,就可以做到源源不断的信息传送了。(在程序设计中,这种设计叫做回调,即:你有信息了再来通知我,而不是我傻乎乎的每次跑来问你 )
相关文章推荐
- 认识WebSocket原理
- Websocket——Websocket原理
- 看完让你彻底搞懂Websocket原理
- 看完让你彻底搞懂Websocket原理
- 看完让你彻底搞懂Websocket原理
- Websocket原理
- WebSocket原理
- websocket原理
- 看完让你彻底搞懂Websocket原理
- Spring Boot 使用 WebSocket 实现消息推送 及 WebSocket原理
- 通俗易懂WebSocket原理
- 看完让你彻底搞懂Websocket原理
- 看完让你彻底搞懂Websocket原理
- 看完让你彻底搞懂Websocket原理
- 你彻底搞懂Websocket原理
- 看完让你彻底搞懂Websocket原理
- 看完让你彻底搞懂Websocket原理
- 看完让你彻底搞懂Websocket原理
- Websocket——Websocket原理
- 看完让你彻底搞懂Websocket原理