HTML5 词条目录
前端Wiki/词条/WebSocket 长连接

WebSocket 长连接

定义在浏览器与服务器之间建立一条全双工长连接,适合实时双向通信

HTTP 是一问一答的短连接,WebSocket 握手成功后通道一直保持,服务器可以主动推消息给客户端,客户端也能随时发消息,没有 HTTP 轮询的请求头开销。使用 new WebSocket(ws 地址) 建连,onopen/onmessage/onclose/onerror 四个回调覆盖整个生命周期,send 方法双向发消息。

典型场景是聊天室、股票行情、在线协同编辑与多人游戏。send 只能发字符串、ArrayBuffer 或 Blob,结构化数据通常 JSON 序列化后传输。要自己处理断线重连与心跳保活;如果是简单的服务器单向推送(如通知),SSE 可能更省事。

JavaScript
var ws = null;
function connect() {
  ws = new WebSocket('wss://echo.websocket.org');
  ws.onopen = function () { console.log('连接已建立'); ws.send('你好,服务器'); };
  ws.onmessage = function (e) { console.log('收到消息:', e.data); };
  ws.onclose = function () { console.log('连接关闭,3 秒后重连'); setTimeout(connect, 3000); };
  ws.onerror = function (e) { console.log('发生错误', e); };
}
connect();
⚠ 常见误区
🔗 相关词条浏览器本地存储
← 返回来源章节浏览器