WebSocket 适合需要实时通信、服务器主动推送、持续保持连接的场景。
常见使用场景
1. 即时聊天
例如:
- 微信聊天
- 在线客服
- 群聊系统
- AI 聊天流式输出
用户 A 发送消息 ↓ 服务器收到 ↓ 立即推送给用户 B不需要用户 B 不断刷新页面。
2. 消息通知
例如你图片里的消息中心:
- 新待办提醒
- 系统通知
- 审批提醒
- 未读消息数量变化
- 企业内部公告
后台产生一条新消息 ↓ WebSocket 主动推送 ↓ 前端消息图标显示红点3. AI 安防告警
例如工厂摄像头识别到:
- 未戴安全帽
- 人员闯入危险区域
- 烟火异常
- 人员跌倒
- 车辆违规停放
AI 算法识别违规 ↓ 后端生成告警 ↓ WebSocket 推送到监控中心 ↓ 页面立即弹出告警这里 WebSocket 一般传递的是告警信息和识别结果,视频流本身通常走 RTSP、WebRTC 等协议。
4. 实时监控大屏
例如:
- 当前在线设备数量
- 生产线运行状态
- 仓库温湿度
- 实时能耗数据
- 车辆位置
- 人员数量
数据变化后直接推送给大屏:
设备数据变化 ↓ 服务器推送 ↓ 大屏数字和图表自动更新5. 股票、行情和价格变化
例如:
- 股票价格
- 数字货币行情
- 外汇行情
- 商品价格
- 实时交易数据
价格每秒可能变化多次,使用普通轮询会产生大量请求,WebSocket 更合适。
6. 在线协同编辑
例如:
- 多人共同编辑文档
- 在线白板
- 协同表格
- 共享代码编辑器
用户 A 修改一段文字 ↓ 服务器收到变化 ↓ 立即同步给用户 B、用户 C7. 在线游戏
例如:
- 玩家位置变化
- 血量变化
- 房间消息
- 对战状态
- 游戏事件同步
游戏需要持续、快速地交换数据,因此通常需要长连接。
8. 实时订单和物流状态
例如:
- 外卖骑手位置
- 网约车位置
- 订单状态变化
- 仓库作业进度
- 车辆排队叫号
订单状态变为“已出库” ↓ 服务器主动通知前端9. 设备状态管理
物联网平台中常用于:
- 设备上线、离线
- 设备故障
- 传感器状态变化
- 摄像头连接状态
- 边缘服务器运行状态
不过设备本身上报数据也可能使用 MQTT,前端页面实时展示时再通过 WebSocket 推送。
常见链路是:
设备 → MQTT → 后端 → WebSocket → 前端不适合使用 WebSocket 的场景
普通业务接口通常没必要使用 WebSocket,例如:
- 登录
- 注册
- 查询用户信息
- 新增一条记录
- 修改表单
- 删除数据
- 下载文件
- 查询历史消息
这些场景使用 HTTPS 更简单:
前端发请求 ↓ 后端返回结果判断标准
满足以下任意几个条件时,可以考虑 WebSocket:
- 服务器需要主动向前端推送数据。
- 数据变化频繁。
- 对实时性要求较高。
- 客户端和服务器需要持续双向通信。
- 不希望前端频繁轮询。
可以简单记成:
普通增删改查 → HTTPS 实时消息、告警、状态变化 → WebSocket