文章目录一、本篇学习目标二、为什么要用WebSocket ?(痛点直击)三、技术实战(Spring Boot 3.5.11 + JDK 17)3.1 maven依赖3.2 WebSocketConfig配置类3.3 WebSocket 服务端核心类3.4 前端页面3.5 Controller 来访问页面四、实战测试4.1 启动应用4.2 测试4.2.1 互相发送消息4.2.2 测试断开重连五、高频面试题1. WebSocket 和 HTTP 有什么区别?2. WebSocket 和 Socket 有什么关系?3. WebSocket 如何保证连接存活?心跳机制怎么实现?4. @ServerEndpoint 和 Spring 的 WebSocketHandler 有什么区别?本篇主要讲解Spring Boot 整合 WebSocket 入门,让大家了解实时消息推送、在线聊天这里功能怎么简单的实现。包括后端搭建、前端通信,保证你复制过去就能跑起来。一、本篇学习目标WebSocket 是什么,它解决了什么问题Spring Boot 3.5.11 + JDK 17 整合 WebSocket 的具体步骤一个完整的双向通信示例(后端推送 + 前端收发)高频面试题二、为什么要用WebSocket ?(痛点直击)传统的 HTTP 请求是“一问一答”:客户端问一次,服务器答一次。如果你想实现实时数据(比如游戏对战、在线聊天),只能用轮询或长轮询:轮询:每隔 1 秒发一次请求 → 浪费带宽,服务器压力大长轮询:请求挂起,有数据再返回 → 依然有 HTTP 头部开销,延迟也不低而 WebSocket 一次握手建立持久连接,之后双方随时可以主动发消息,全双工、低延迟、省资源。举个最直接的例子:你写一个聊天室,用 HTTP 轮询的话,用户说一句话要等 1 秒才能显示,WebSocket 则是即发即收。三、技术实战(Spring Boot 3.5.11 + JDK 17)3.1 maven依赖