WebSocket 是一种基于 TCP 的双向实时通信协议,允许客户端与服务器之间建立持久连接,实现数据的即时推送低延迟交互。相比传统的 HTTP 请求-响应模式,它更适合需要频繁数据交换的场景。

🧠 核心概念

  1. 全双工通信

    • 双方可同时发送和接收数据(如聊天室、实时游戏)
    • 使用 💡 图标表示双向数据流
    WebSocket_全双工通信
  2. 握手过程

    • 通过 HTTP 协议升级为 WebSocket 连接
    • 关键步骤:GET 请求 → 101 Switching Protocols 响应
    WebSocket_握手流程
  3. 协议特点

    • 低延迟(相比 HTTP 的头部开销)
    • 保持连接(无需重复建立)
    • 支持二进制和文本数据

📈 工作原理

WebSocket 通信分为三个阶段:

  1. 连接建立
    • 客户端发送 WebSocket_请求
    • 服务器响应 WebSocket_接受
  2. 数据传输
    • 使用 WebSocket_消息格式(如 textbinary
    • 通过 WebSocket_通信原理图 展示数据双向流动
    WebSocket_通信原理图

🧾 代码示例(Node.js)

// 服务器端
const WebSocket = require('ws');
const wss = new WebSocket.Server({ port: 8080 });
wss.on('connection', (ws) => {
  ws.send('Hello from server!');
  ws.on('message', (message) => {
    console.log('Received:', message);
  });
});

// 客户端
const ws = new WebSocket('ws://localhost:8080');
ws.on('open', () => {
  ws.send('Hello from client!');
});

⚠️ 图片关键词可替换为 WebSocket_代码示例WebSocket_服务器客户端

📌 典型应用场景

  • 实时聊天(💬)
  • 在线游戏(🎮)
  • 数据仪表盘(📊)
  • 金融交易实时更新(📈)

📚 扩展阅读

想深入了解 HTTP 与 WebSocket 的区别?
👉 点击查看教程

📷 图片关键词建议:WebSocket_应用场景WebSocket_实时数据流WebSocket_协议结构