WebSocket 详解
2026/6/25 21:56:05 网站建设 项目流程

WebSocket 详解

    • 一、什么是 WebSocket?
      • 核心特性
    • 二、WebSocket 的工作原理
      • 2.1 握手过程
      • 2.2 数据帧格式
    • 三、WebSocket 与 HTTP 的对比
    • 四、WebSocket 的应用场景
      • 4.1 实时聊天应用
      • 4.2 在线游戏
      • 4.3 金融交易
      • 4.4 物联网(IoT)
      • 4.5 协作工具
    • 五、WebSocket 的优缺点
      • 优点
      • 缺点
    • 六、WebSocket 安全
      • 6.1 WSS(WebSocket Secure)
      • 6.2 安全最佳实践
    • 七、WebSocket 在 Java 中的使用
      • 7.1 使用 Spring WebSocket
      • 7.2 使用 Netty WebSocket
    • 八、WebSocket 常见问题
      • 8.1 连接断开
      • 8.2 消息丢失
      • 8.3 性能问题
    • 九、总结

一、什么是 WebSocket?

WebSocket是一种在单个 TCP 连接上进行全双工通信的通信协议。它允许服务器和客户端之间建立持久连接,实现双向实时数据传输。

核心特性

  • 全双工通信:客户端和服务器可以同时发送和接收数据
  • 持久连接:一旦建立连接,就保持打开状态,无需反复握手
  • 低延迟:数据可以即时推送,无需轮询
  • 轻量级:协议开销小,适合实时应用
  • 基于 TCP:建立在 TCP 协议之上,保证可靠传输

二、WebSocket 的工作原理

2.1 握手过程

WebSocket 连接建立需要经历一个HTTP 握手过程:

客户端 服务器 | | |--- HTTP Upgrade Request ----->| | (请求升级为 WebSocket 协议) | | | |<-- HTTP 101 Switching Protocols| | (确认协议升级) | | | |<====== WebSocket 连接建立 =====>| | | |<---> 双向实时数据传输 <------->|

握手请求示例

GET /chat HTTP/1.1 Host: server.example.com Upgrade: websocket Connection: Upgrade Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ== Sec-WebSocket-Version: 13 Origin: http://example.com

握手响应示例

HTTP/1.1 101 Switching Protocols Upgrade: websocket Connection: Upgrade Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo=

2.2 数据帧格式

WebSocket 数据以**帧(Frame)**为单位传输,每帧包含:

+---+---+---+---+---+---+---+---+ | FIN | RSV1 | RSV2 | RSV3 | +---+---+---+---+---+---+---+---+ | Opcode | Mask | Payload Length | +---+---+---+---+---+---+---+---+ | Extended Payload Length (if needed) | +---+---+---+---+---+---+---+---+ | Masking Key (if needed) | +---+---+---+---+---+---+---+---+ | Payload Data | +---+---+---+---+---+---+---+---+

Opcode 类型

  • 0x0:Continuation frame(延续帧)
  • 0x1:Text frame(文本帧)
  • 0x2:Binary frame(二进制帧)
  • 0x8:Close frame(关闭帧)
  • 0x9:Ping frame(心跳帧)
  • 0xA:Pong frame(心跳响应帧)

三、WebSocket 与 HTTP 的对比

特性HTTPWebSocket

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询