WebSocket 是什么?

简单理解:WebSocket 是一种让浏览器和服务器之间保持长期双向通信的协议

传统 HTTP 是:

客户端请求
    |
    ↓
服务器响应
    |
    ↓
连接结束

例如打开网页,HTTP 是“一问一答”:

浏览器:
  我要首页

服务器:
  给你 index.html

结束

但是很多场景需要服务器可以主动不断推送数据给客户端,例如:

  • 聊天软件
  • 股票行情
  • 游戏
  • 在线终端
  • 远程桌面

如果用普通的 HTTP一问一答,每次发起新请求,非常浪费资源:

客户端:有没有新消息?
服务端:没有
过1秒
客户端:有没有新消息?
服务端:没有

WebSocket 就解决这个问题,建立一次连接:

浏览器
   |
   |
 WebSocket
   |
   |
服务器

连接一直保持这,服务器可以随时向浏览器发送数据,浏览器也可以随时向服务器发送数据:

服务器 ---> 浏览器
推送数据
浏览器 ---> 服务器
发送数据

所以:WebSocket = Web + Socket(双向长连接)

标签