小白攻略之websoket

698 阅读2分钟

前言

WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。

WebSocket是一个基于 TCP 的协议。

什么叫全双工通讯?

全双工通信又称为双向同时通信,即通信的双方可以同时发送和接收信息的信息交互方式。

如电话、手机等。

概念

websoket是一种协议,本质上和http和tcp一样。

协议是用来说明数据是如何传输的。

格式

前缀为ws:// 或者wss://(加密的)。

优势

  1. 允许服务端主动向客户端推送数据
  2. 浏览器和服务端只需完成一次握手
  3. 持久性连接

websoket和Ajax轮询请求的区别

这两个技术都是为了实现推送技术,就是在特定的时间间隔内,向服务器发出http请求。

Ajax轮询请求:

由浏览器向服务端不断发起http请求,由于http请求可能包含较长的头部,有用的数据占比低,可能会浪费传输的宽带等资源。

websoket:

连接建立以后,客户端和服务器端可以通过 TCP 连接直接交换数据。

websoket实例

WebSocket 协议本质上是一个基于 TCP 的协议。

为了建立一个 WebSocket 连接,客户端浏览器首先要向服务器发起一个 HTTP 请求,这个请求和通常的 HTTP 请求不同,包含了一些附加头信息,其中附加头信息"Upgrade: WebSocket"表明这是一个申请协议升级的 HTTP 请求,服务器端解析这些附加的头信息然后产生应答信息返回给客户端,客户端和服务器端的 WebSocket 连接就建立起来了,双方就可以通过这个连接通道自由的传递信息,并且这个连接会持续存在直到客户端或者服务器端的某一方主动的关闭连接。

  1. 建立websocket连接之前,需要先发起http请求
  2. 需要主动关闭
  3. 该http请求的不同