CodeRoadMap
首页路线题库资源库文章社区
CodeRoadMap

程序员的学习成长路线图。内容免费开放,登录后可同步路线图与课时进度。

由 程序员柏风 独立维护 · 关于作者

学习

  • 路线图
  • 课程
  • 面试题
  • 文章
  • 我

更多

  • 资源
  • 社区
  • 关于作者
  • 内容说明

© 2026 CodeRoadMap

津ICP备2026012044号-1·津公网安备12011002026155号·coderoadmap@126.com
WebSocket 实时通信/课时/WebSocket 是什么
RawBlame
课时目录12 节

WebSocket 实时通信

  1. 01WebSocket 是什么
  2. 02协议与握手
  3. 03Spring WebSocket
  4. 04STOMP 消息
  5. 05浏览器客户端
  6. 06Next.js 与 WebSocket
  7. 07鉴权与安全
  8. 08水平扩展
  9. 09SSE 对照
  10. 10Nginx 反代升级
  11. 11测试与调试
  12. 12综合练习

WebSocket 是什么

HTTP 轮询 vs 长连接;适用场景。

25 分钟

WebSocket 是什么

WebSocket 在单个 TCP 连接上提供全双工通信。CodeRoadMap 主业务仍走 REST(spring-boot-essentials 的 @RestController);实时实验台(聊天、通知)才用 WebSocket。

学习目标

  • 区分轮询、长轮询与 WebSocket
  • 判断何时该用实时通道
  • 理解本站 REST / WS 分工

为什么不用 HTTP 轮询

方式延迟开销适用
短轮询高(间隔决定)大量无效请求低频状态
长轮询中连接占用兼容老浏览器
WebSocket低握手后帧级开销聊天、通知、协作
// 短轮询:每 3 秒问一次「有新消息吗?」
setInterval(async () => {
  const res = await fetch("/api/notifications/unread");
  // ...
}, 3000);

WebSocket 建立后,服务端 主动推送,无需客户端反复发起 HTTP。

CodeRoadMap 场景

浏览器 ──REST──► Nginx ──► Spring Boot :8080   (课时、进度、鉴权)
浏览器 ──WS────► Nginx ──► Spring Boot /ws     (实验台聊天、实时通知)
  • 课时列表、提交作业:REST,见 sb-mvc
  • 实验台消息:WebSocket + STOMP(后续 ws-stomp)

何时不用 WebSocket

  • 纯 CRUD、分页列表 → REST 足够
  • 只需服务端单向推送、且可 HTTP/2 → 考虑 ws-sse
  • 防火墙只允许 443 且不能 Upgrade → 降级 SSE 或轮询

练习

  • 列出 CodeRoadMap 三个适合 WebSocket 的功能点
  • 对比轮询与 WS 在 100 在线用户下的请求量
  • 读 next-api 理解 REST 主路径

小结

WebSocket = 长连接上的双向通道,补 REST 的实时缺口。 下一课握手与帧格式。

加载本节练习…
下一课 →
协议与握手