Skip to content

介绍下WebSocket

参考答案:

1. WebSocket 是什么

WebSocket是HTML5提供的一种浏览器与服务器进行全双工通讯的网络技术,属于应用层协议。它基于TCP传输协议,并复用HTTP的握手通道。浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接, 并进行双向数据传输。

WebSocket 的出现就解决了半双工通信的弊端。它最大的特点是:服务器可以向客户端主动推动消息,客户端也可以主动向服务器推送消息。

WebSocket原理 :客户端向 WebSocket 服务器通知(notify)一个带有所有接收者ID(recipients IDs)的事件(event),服务器接收后立即通知所有活跃的(active)客户端,只有ID在接收者ID序列中的客户端才会处理这个事件。

2. WebSocket 特点

  • 支持双向通信,实时性更强
  • 可以发送文本,也可以发送二进制数据‘’
  • 建立在TCP协议之上,服务端的实现比较容易
  • 数据格式比较轻量,性能开销小,通信高效
  • 没有同源限制,客户端可以与任意服务器通信
  • 协议标识符是ws(如果加密,则为wss),服务器网址就是 URL
  • 与 HTTP 协议有着良好的兼容性。默认端口也是80和443,并且握手阶段采用 HTTP 协议,因此握手时不容易屏蔽,能通过各种 HTTP 代理服务器。

题目要点:

WebSocket是一种HTML5提供的网络技术,它允许浏览器和服务器之间进行全双工通信,即可以同时进行双向数据传输。WebSocket基于TCP传输协议,并且使用HTTP的握手通道来建立连接。一旦握手完成,客户端和服务器之间就可以直接通信,无需再次建立连接。

WebSocket的特点包括:

  • 双向通信:客户端和服务器可以相互发送消息,增强了实时性。
  • 支持多种数据格式:可以发送文本数据和二进制数据。
  • 简单易实现:建立在TCP协议之上,服务端的实现相对简单。
  • 高效性能:数据格式轻量,通信高效,性能开销小。
  • 无同源限制:客户端可以与任意服务器通信,不受同源策略的限制。
  • 协议标识符:默认使用ws(未加密)和wss(加密)作为协议标识符。
  • 兼容性:与HTTP协议兼容,可以通过各种HTTP代理服务器。

WebSocket的工作原理是客户端通知服务器一个事件,服务器接收到事件后,立即通知所有活跃的客户端。只有接收者ID在事件中指定的客户端才会处理这个事件。这种方式使得WebSocket能够有效地实现事件驱动的通信模式。