Socket.IO

Socket.IO 是一个库,可以在客户端和服务器之间实现 低延迟, 双向基于事件 的 通信。

Socket.IO 包含以下三种不同级别的传输,会根据网络浏览器情况自动适配:

  • HTTP long-polling(长轮循)
  • WebSocket(双向通信协议)
  • WebTransport(低延时通信方案)

特点

  1. 长轮循回退

如果无法建立 WebSocket 连接,连接将回退到 HTTP 长轮询。

  1. 自动重新连接

Socket.IO 包含一个心跳机制,它会定期检查连接的状态,连接断开时会使用 指数回退 的方式自动重新连接,以免使服务器不堪重负。

  1. 数据包缓冲

客户端断开连接时,数据包会自动缓冲,并在重新连接时发送。

  1. 事件确认机制

接收端收到事件之后,调用一个回调函数,发送端便会监听到回调,以次来实现事件确认机制。

  1. 广播和组播

可以向所有成员和指定房间内的用户发送消息。

  1. 多路复用

通过 命名空间(Namespaces)的方式来拆分逻辑。