当前位置: 首页 > news >正文

SpringBoot如何集成WebSocket

在Spring Boot中集成WebSocket有多种方式,以下是三种常见的集成方式及其配置步骤:

一、使用Javax.websocket原生注解

  1. 添加依赖

    pom.xml文件中添加Spring Boot WebSocket的依赖:

    <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-websocket</artifactId>
    </dependency>
    
  2. 配置服务端点

    使用@ServerEndpoint注解来标记WebSocket服务端点,并配置路径。在类中添加处理连接打开、关闭、接收消息和异常的方法,分别使用@OnOpen@OnClose@OnMessage@OnError注解来标记。

    @Component
    @ServerEndpoint("/websocket/{type}")
    public class JavaxWebSocketServerEndpoint {@OnOpenpublic void onOpen(Session session, EndpointConfig config, @PathParam("type") String type) {// 连接建立}@OnClosepublic void onClose(Session session, CloseReason reason) {// 连接关闭}@OnMessagepublic void onMessage(Session session, String message) {// 接收文本信息}@OnMessagepublic void onMessage(Session session, PongMessage message) {// 接收pong信息}@OnMessagepublic void onMessage(Session session, ByteBuffer message) {// 接收二进制信息}@OnErrorpublic void onError(Session session, Throwable e) {// 异常处理}
    }
    
  3. 配置Spring Boot以支持Javax.websocket

    创建一个配置类,并手动注入ServerEndpointExporter,以便Spring Boot能够扫描到WebSocket的注解。

    @Configuration(proxyBeanMethods = false)
    public class JavaxWebSocketConfiguration {@Beanpublic ServerEndpointExporter serverEndpointExporter() {return new ServerEndpointExporter();}
    }
    

二、使用Spring封装的WebSocket

  1. 添加依赖

    同样在pom.xml文件中添加Spring Boot WebSocket的依赖。

  2. 配置WebSocket处理器

    实现WebSocketHandler接口,并在配置类中注册该处理器。,并在配置类中注册该处理器。

    @Component
    public class MyWebSocketHandler implements WebSocketHandler {@Overridepublic void handleTextMessage(WebSocketSession session, TextMessage {@Overridepublic void handleTextMessage(WebSocketSession session, TextMessage message) throws Exception {// 处理文本消息String payload = message.getPayload();session.sendMessage(new TextMessage("服务器收到:" + payload));}// 其他方法如afterConnectionEstablished, afterConnectionClosed, handleTransportError等也需要实现
    }@EnableWebSocket
    @Configuration
    public class WebSocketConfig implements WebSocketConfigurer {@Autowiredprivate MyWebSocketHandler webSocketHandler;@Overridepublic void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {registry.addHandler(webSocketHandler, "/testWs").setAllowedOrigins("*");}
    }
    

三、使用Spring封装的STOMP协议

STOMP(Simple Text Oriented Messaging Protocol)是一个简单的文本协议,用于在客户端和服务器之间进行消息传递。虽然它提供了更多的功能,但相对来说也更加复杂。

  1. 添加依赖

    除了Spring Boot WebSocket的依赖外,还需要添加Spring Messaging的依赖。

  2. 配置STOMP端点和消息代理

    在配置类中配置STOMP端点和消息代理,如RabbitMQ或ActiveMQ等。

  3. 实现消息处理器

    使用@MessageMapping注解来标记处理客户端发送消息的方法。

  4. 客户端配置

    客户端需要使用STOMP协议的客户端库来连接服务器,并发送和接收消息。

总结

以上三种方式都可以在Spring Boot中集成WebSocket,选择哪种方式取决于具体的需求和项目的复杂度。对于简单的WebSocket应用,使用Javax.websocket原生注解或Spring封装的WebSocket已经足够;而对于需要更复杂消息传递和路由的应用,可以考虑使用Spring封装的STOMP协议。


http://www.mrgr.cn/news/71901.html

相关文章:

  • 前端基础的讲解-JS(10)
  • 【LeetCode】【算法】279. 完全平方数
  • Kafka新节点加入集群操作指南
  • 10.WINUSB复合设备
  • (一)- DRM架构
  • Android GPU纹理数据拷贝
  • RT-DETR融合NeurIPS[2022]Ghost Module v2模块
  • C#-命名空间
  • 【FFmpeg】FFmpeg 函数简介 ③ ( 编解码相关函数 | FFmpeg 源码地址 | FFmpeg 解码器相关 结构体 和 函数 )
  • (一)- DRM架构
  • 【364】基于springboot的高校科研信息管理系统
  • WSL2 中大模型环境一步到位!(wsl --update 不好使/wsl2安装/python环境)
  • springboot基于Java的小区物业智能卡管理的设计与实现,计算机毕业设计项目源码311,计算机毕设程序(LW+开题报告、中期报告、任务书等全套方案)
  • 「 审稿答复 」如何写Response评论回复的“第一句”
  • 抖音电商发布双11数据:275个品牌通过直播带货实现成交额过亿元
  • Hyper-v中ubuntu与windows文件共享
  • keras实现道路裂缝检测
  • DHCP和FTP
  • AutoDL使用简记
  • [Codesys]常用功能块应用分享-BMOV功能块功能介绍及其使用实例说明
  • PCL 点云分割 基于CPC算法的分割
  • YOLO11 旋转目标检测 | OBB定向检测 | ONNX模型推理 | 旋转NMS
  • 程序代码设计模式之模板方法模式(1)
  • 利用服务工作线程serviceWorker缓存静态文件css,html,js,图片等的方法,以及更新和删除及版本控制
  • 力扣 LeetCode 59. 螺旋矩阵II(Day1:数组)
  • AlphaFold3中文安装教程