WebSocket 在握手阶段采用的是 HTTP 协议,Websocket 借用了 HTTP 的一部分协议来完成一次握手。(HTTP的三次握手,此处只完成一次)
客户端通过 http(骑马)带着信请求服务器,但同时,携带了 Upgrade:websocket 和Connection:Upgrade(两根管子)
服务器如果支持 WebSocket 协议(有两根管子的接口),使用 Websocket 协议返回可用信息(丢弃马匹)
此后信息的传递,均使用这两个管子,除非有一方人为的将管子切断
若服务器不支持,客户端请求链接失败,返回错误信息。
Websocket 的出现,干净利落的解决了这些问题。
所以上面的情景可以做如下修改。
- 客户端:啦啦啦,我要建立 Websocket 协议,需要的服务:chat,Websocket协议版本:13(HTTP Request)
- 服务端:ok,确认,已升级为 Websocket协议(HTTP Protocols Switched)
- 客户端:麻烦你有信息的时候推送给我噢。。
- 服务端:ok,有的时候会告诉你的。
- 客户端:balabala开始斗图balabala
- 服务端:苍*空bala
- 客户端:流鼻血了,我擦……
- 服务端:哈哈哈牛XX啊哈哈哈哈
- 服务端:笑死我了哈哈