解决SpringBoot框架Websocket错误

今天我做项目的时候碰见一个问题,那就是SpringBoot框架里面使用Websocket,当时使用jar文件启动的时候没有问题,发送信息也可以,但是打包成war包的时候就报了错误,网上配置了一大堆,没有根本解决,而且我发现了一个特点,那就是网上的答案基本上雷同,确切的说是照猫画虎,生搬硬套,只能看官方文档就能解决问题了,具体如下:
当时问题:springBoot使用jar的方式启动的时候没有报任何错误,使用war打包并部署服务器的时候,就报了如下图所示错误:
错误内容:
在这里插入图片描述
解决方案:网上很多资料就是因为测试(springboot-test里面包含了tormcat-websocket)引起的jar包冲突,其实不是的,官网上已经明确指出了问题所在:
在这里插入图片描述
大概意思就是图片中的代码其实是使用jar包方式就可以运行,不过如果使用其他Servlet容器(例如tomcat等),注释掉@Bean以下的注解,如下所示:
在这里插入图片描述
问题就很好解决了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 可以使用Spring Boot集成WebSocket,方法如下: 1. 在项目中添加WebSocket依赖,例如: ``` <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-websocket</artifactId> </dependency> ``` 2. 在Spring Boot项目的主类中添加@EnableWebSocket注解,例如: ``` @SpringBootApplication @EnableWebSocket public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } } ``` 3. 实现WebSocketConfigurer接口,配置WebSocket,例如: ``` @Configuration public class WebSocketConfig implements WebSocketConfigurer { @Override public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) { registry.addHandler(new WebSocketHandler(), "/websocket") .setAllowedOrigins("*"); } } ``` 4. 实现WebSocketHandler接口,实现WebSocket通信,例如: ``` @Component public class WebSocketHandler implements org.springframework.web.socket.WebSocketHandler { @Override public void handleMessage(WebSocketSession session, WebSocketMessage<?> message) throws Exception { // 实现WebSocket通信 } @Override public void afterConnectionEstablished(WebSocketSession session) throws Exception { // WebSocket连接建立成功 } @Override public void handleTransportError(WebSocketSession session, Throwable exception) throws Exception { // WebSocket传输错误处理 } @Override public void afterConnectionClosed(WebSocketSession session, CloseStatus closeStatus) throws Exception { // WebSocket连接关闭处理 } @Override public boolean supportsPartialMessages() { return false; } } ``` 以上就是Spring Boot集成WebSocket的基本步骤,可以根据实际需求进行扩展。 ### 回答2: Spring Boot是一个开源的Java框架,它可以帮助我们快速搭建基于Java的应用程序。WebSocket是一种在Web浏览器和服务器之间进行全双工通信的技术,它能够实现实时的数据传输。 要在Spring Boot中集成WebSocket,我们需要进行以下几个步骤: 1. 添加依赖:在项目的pom.xml文件中,添加Spring Boot WebSocket的依赖,例如: ``` <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-websocket</artifactId> </dependency> ``` 2. 创建WebSocket配置类:创建一个配置类,使用@EnableWebSocket注解开启WebSocket功能,并实现WebSocketConfigurer接口。在configureWebSocketTransport方法中,注册我们的WebSocket处理器。 3. 创建WebSocket处理器:创建一个类,实现WebSocketHandler接口,并重写其中的方法,例如onOpen、onClose、onMessage等。这些方法分别在WebSocket连接建立、关闭和收到消息时被调用,我们可以在这些方法中编写自己的业务逻辑。 4. 配置消息代理:在WebSocket配置类中,使用@EnableWebSocketMessageBroker注解开启消息代理功能,同时重写其中的方法,配置消息代理的前缀和目的地。这样我们就可以使用消息代理来实现广播和点对点的消息发送。 5. 创建WebSocket端点:在配置类中,使用registerWebSocketHandlers方法,注册我们的WebSocket处理器和端点,并设置允许通过CORS跨域访问。 通过以上几个步骤,我们就可以在Spring Boot中成功集成WebSocket。在前端页面中,我们可以使用JavaScript的WebSocket API来与后端建立连接,并进行实时的双向通信。同时,Spring Boot提供了多种内置的消息代理方式,可以更方便地实现消息的发送和接收。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值