WebSocket 是一种在客户端和服务器之间进行实时双向通信的协议,与传统的 HTTP 请求-响应模式不同,它通过持久连接实现低延迟数据传输。以下是 WebSocket API 的核心概念与使用指南:

1. 基本原理 🌐

WebSocket 建立在 TCP 协议之上,通过以下步骤实现通信:

  1. 握手:客户端与服务器通过 HTTP 协议发起连接请求(ws://wss://
  2. 升级:服务器响应 101 Switching Protocols 状态码,协议切换为 WebSocket
  3. 数据传输:双向通信通道建立后,可发送文本或二进制数据

WebSocket Handshake

WebSocket 握手过程示意图

2. 核心特性 ⚡

  • 实时性:数据在毫秒级内传输(相比 HTTP 的延迟降低 90%)
  • 双向通信:客户端与服务器可同时发送数据
  • 长连接:减少频繁建立连接的开销
  • 协议灵活性:支持自定义数据格式(如 JSON、二进制)

3. 典型应用场景 📱

  • 在线聊天系统 💬
  • 实时游戏数据同步 🎮
  • 股票行情推送 📈
  • 远程控制设备 🔄

Real Time Communication

实时通信的应用场景

4. 基本用法 ✅

服务器端(Node.js 示例)

const WebSocket = require('ws');
const wss = new WebSocket.Server({ port: 8080 });

wss.on('connection', function connection(ws) {
  ws.send('Welcome to WebSocket API!');
  
  ws.on('message', function message(data) {
    console.log('Received:', data.toString());
  });
});

客户端(JavaScript 示例)

const ws = new WebSocket('ws://localhost:8080');

ws.onopen = function() {
  ws.send('Hello Server!');
};

ws.onmessage = function(event) {
  console.log('Message from server:', event.data);
};

5. 安全建议 🔒

  • 使用 wss://(WebSocket Secure)加密通信
  • 验证客户端身份(如 Token 认证)
  • 设置合理的连接超时机制
  • 参考 WebSocket 安全最佳实践 深入了解防护策略

6. 扩展学习 📚

WebSocket Code Example

WebSocket 代码示例