关于websocket知识点
首先了解下websocket与http协议
1、WebSocket是HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议,使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在 WebSocket API 中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。
它是为了解决客户端发起多个http请求到服务器资源浏览器必须要经过长时间的轮训问题而生的,他实现了多路复用、全双工通信。在webSocket协议下客服端和浏览器可以同时发送信息。
2、HTTP的协议是应用层的协议,他是基于TCP协议的,HTTP协议建立连接必须有三次握手才能发送消息(这里就不在赘述具体是怎么实现的)。即每一个request对应一个response。客户端与服务器端通信,必须由客户端发起服务器端返回结果。客户端是主动的,服务器端是被动的。
HTTP的长链接和WebSocket持久连接的区别:
HTTP1.1 的连接默认使用长连接(persistent connection),即在一定的期限内保持链接,客户端会需要在短时间内向服务端请求大量的资源,保持TCP连接不断开。客户端与服务器通信,必须要有客户端发起然后服务器返回结果。客户端是主动的,服务器是被动的。在一个TCP连接上可以传输多个Request/Response消息对,所以本质上还是Request/Response消息对,仍然会造成资源的浪费、实时性不强等问题。
1、如果不是持续连接,即短连接,那么每个资源都要建立一个新的连接,HTTP底层使用的是TCP,那么每次都要使用三次握手建立TCP连接,即每一个requ