- 握手阶段:
- 客户端发起WebSocket连接请求时,首先会发送一个HTTP请求给服务器,包含特定的WebSocket头部信息,如Upgrade和Connection字段。
- 服务器收到请求后,进行握手确认,返回状态码101 Switching Protocols,表示已经切换到WebSocket协议。
- 建立连接:
- 握手完成后,客户端和服务器之间建立了WebSocket连接,此时是持久连接,双方可以随时发送数据。
- 数据帧格式:
- WebSocket数据传输采用数据帧的方式,在实际通信中,将数据封装成一系列的数据帧进行传输。
- 数据帧由固定的格式组成,包括FIN(结束标志位)、RSV(保留位)、Opcode(操作码)、Mask(掩码位)等字段,用于表示数据的类型、长度和处理方式。
- 心跳检测:
- WebSocket连接建立后,客户端和服务器之间可以通过心跳机制来维持连接的稳定性,避免连接超时断开。
- 双方定期发送心跳数据帧,以确认对方仍然处于连接状态。
- 断开连接:
- 当需要断开WebSocket连接时,可以通过特定的关闭数据帧来结束连接,双方收到关闭帧后,即可安全地关闭连接。