Spring Boot 2.x集成WebSocket

Spring Boot 2.x集成WebSocket详解

websocket的接入是非常简单的,就是可能会遇到起不来或者调不通的问题,大部分是因为jar包冲突,可以根据自己碰到的不同问题针对解决。

一、准备工作

  • 引入spring-boot-starter-websocket依赖包
  • 配置支持Servlet 3.1的运行时环境,比如Tomcat 8+
  • 在Spring Boot主应用类上添加@EnableWebSocket注解启用WebSocket功能

二、核心配置

  • 创建一个配置类,定义ServerEndpointExporter@Bean,该Bean负责扫描和注册@ServerEndpoint注解的WebSocket Endpoint
java 复制代码
@Bean
public ServerEndpointExporter serverEndpointExporter() {
    return new ServerEndpointExporter(); 
}  
  • 使用@ServerEndpoint注解实现一个WebSocket Endpoint,处理连接、消息、关闭等事件
java 复制代码
@Component
@ServerEndpoint("/websocket")
public class MyEndpoint {

    @OnOpen
    public void onOpen(){
        // 连接建立时执行
    } 
    
    @OnMessage
    public void onMessage(Session session, String message) {
        // 收到消息时执行
    }

}
  • WebSocket Endpoint可以直接注入Spring管理的业务Bean进行复用

三、注意事项

IllegalStateException: javax.websocket.server.ServerContainer not available

该问题大概率是因为项目中混入了一个以上的容器,请把你能看到的所有jetty包都排除出去,推荐使用maven-helper辅助解决。

相关推荐
木雷坞4 小时前
Go 项目实战:用 MLiev IAM 落地企业认证中心
后端·golang·认证
TickDB8 小时前
美股行情 API 接入避坑:REST 快照、WebSocket 推送、盘前盘后数据的边界
人工智能·python·websocket·行情数据 api
Moment9 小时前
长上下文会最终杀死 Rag 吗?
前端·javascript·后端
蝎子莱莱爱打怪9 小时前
🚀 🚀🚀2026年5月GitHub月榜精选:17个项目中挑出10个推荐,实操4个!
人工智能·后端·ai编程
砍材农夫10 小时前
物联网实战:Spring Boot MQTT | MQTT 设备模拟器演示(附源码)
java·spring boot·后端·物联网·spring·netty
我叫黑大帅11 小时前
解决聊天页内部滚轮改为页面滚动问题
javascript·后端·面试
YDS82911 小时前
DeepSeek RAG&MCP + Agent智能体项目 —— Agent执行链路设计之ReAct Loop
java·spring boot·ai·agent·deepseek
IT_陈寒11 小时前
Python的线程池居然把我坑在了垃圾回收这块
前端·人工智能·后端
zhangxingchao12 小时前
AI应用开发八:RAG相关技术总结
前端·人工智能·后端
吴佳浩12 小时前
Go史上最大“打脸”现场来了:泛型方法终于实现了
后端·go