websocket简介与基本使用

websocket是什么

WebSocket 是一种基于 TCP 的全双工通信协议 ,允许客户端和服务器之间建立持久连接 ,实现实时、双向的数据传输。它是 HTTP 协议的补充,专为低延迟、高效率的实时通信设计。

核心特点

|-------|---------------------------------------|
| 特性 | 说明 |
| 全双工通信 | 客户端和服务器可以同时发送和接收数据(不像 HTTP 的请求-响应模式)。 |
| 低延迟 | 建立连接后,数据可以即时推送,无需频繁建立新连接。 |
| 持久连接 | 一次握手后,连接保持打开状态,直到主动关闭。 |
| 轻量级 | 数据包头较小(仅 2~10 字节),适合高频通信场景。 |

与 HTTP 的对比

|------|---------------------|-------------------------|
| | WebSocket | HTTP |
| 通信模式 | 双向通信(服务器可主动推送) | 单向请求-响应(客户端发起) |
| 连接方式 | 持久连接 | 短连接(每次请求后关闭) |
| 协议头 | 轻量级(ws:// 或 wss://) | 较复杂(http:// 或 https://) |
| 适用场景 | 实时聊天、股票行情、游戏同步 | 网页浏览、API 调用 |

工作原理

握手阶段

客户端通过 HTTP 发送升级请求(Upgrade 头):

复制代码
GET /chat HTTP/1.1
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==

服务器返回 101 Switching Protocols 确认升级为 WebSocket。

数据传输

握手成功后,双方通过二进制帧(Frame)传输数据,无需重复握手。

关闭连接

任一方发送关闭帧(Opcode 0x8)即可终止连接。

常见应用场景

实时聊天(如微信网页版)

在线协作工具(如 Google Docs 多人编辑)

股票行情推送

多人在线游戏

IoT 设备控制(如智能家居实时状态更新)

代码示例(JavaScript)

复制代码
// 客户端
const socket = new WebSocket("wss://example.com/chat");

// 监听消息
socket.onmessage = (event) => {
  console.log("收到消息:", event.data);
};

// 发送消息
socket.send("Hello Server!");

// 关闭连接
socket.close();

安全性

加密 :使用 wss://(WebSocket Secure,基于 TLS/SSL)。

验证 :通过 Sec-WebSocket-KeySec-WebSocket-Accept 防止恶意连接。

优缺点

优点:实时性强、节省带宽(相比 HTTP 轮询)。

缺点

需要服务器持续维护连接(可能增加资源消耗)。

部分老旧浏览器或网络设备可能不支持。
WebSocket 是现代实时应用的基石技术,结合后端框架(如 Socket.IO、WebSocket API)可轻松构建高效的双向通信系统。

相关推荐
笙囧同学40 分钟前
基于大数据技术的疾病预警系统:从数据预处理到机器学习的完整实践(后附下载链接)
大数据·网络·机器学习
paopaokaka_luck44 分钟前
婚纱摄影管理系统(发送邮箱、腾讯地图API、物流API、webSocket实时聊天、协同过滤算法、Echarts图形化分析)
vue.js·spring boot·后端·websocket·算法·echarts
盖雅工场2 小时前
零工合规挑战:盖雅以智能安全体系重构企业用工风控
网络·安全·重构
厦门辰迈智慧科技有限公司3 小时前
排水管网实时监测筑牢城市安全防线
网络·物联网·安全·自动化·监测
爱吃小白兔的猫5 小时前
【基础篇三】WebSocket:实时通信的革命
网络·websocket·网络协议
21号 15 小时前
4.应用层自定义协议与序列化
运维·服务器·网络
老六ip加速器5 小时前
如何给电脑换个ip地址?电脑换ip几种方法
网络协议·tcp/ip·电脑
云畅新视界5 小时前
HOTDOG构建“IP×用户”共创生态,激活数字文化新势能
网络·网络协议·tcp/ip
无线图像传输研究探索6 小时前
单兵图传终端:移动场景中的 “实时感知神经”
网络·人工智能·5g·无线图传·5g单兵图传
深蓝海拓6 小时前
通信名词解释:I2C、USART、SPI、RS232、RS485、CAN、TCP/IP、SOCKET、modbus等
网络·网络协议·tcp/ip