WebSocket 是一种在客户端和服务器之间进行实时双向通信的协议,与传统的 HTTP 请求-响应模式不同,它通过持久连接实现低延迟数据传输。以下是 WebSocket API 的核心概念与使用指南:
1. 基本原理 🌐
WebSocket 建立在 TCP 协议之上,通过以下步骤实现通信:
- 握手:客户端与服务器通过 HTTP 协议发起连接请求(
ws://
或wss://
) - 升级:服务器响应
101 Switching Protocols
状态码,协议切换为 WebSocket - 数据传输:双向通信通道建立后,可发送文本或二进制数据
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 代码示例