springboot项目使用websocket一直连不上

最近想给自己手里的springboot项目加上使用websocket的功能,于是查网上的教程发现引入下面的依赖。

<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-websocket</artifactId>
</dependency>

引入后加上WebSocketConfig配置类文件就算是完成了,配置类内容如下:

@Configuration
public class WebSocketConfig {

    @Bean
    public ServerEndpointExporter serverEndpointExporter() {
        return new ServerEndpointExporter();
    }
}

然后写websocket的服务类,网上一大堆这里不啰嗦了。
然而遇到一个问题就是前端建立websocket连接死活连不上,于是继续上网搜攻略,有说在启动类加上@EnableWebSocket的,有说把服务类上的@Component去掉的,如图:
在这里插入图片描述
还有的说是springboot内置tomcat版本问题,必须用tomcat7以上的,或者把内置tomcat去掉用外部tomcat的,我挨个试过了都解决不了我的问题,无奈。
后来搜到一篇文章说是自定义的aop切面类导致注入为null,建议把自己写的切面类去掉,或者不要切到websocket服务类,我跟着挣扎了一圈发现依然解决不了我的问题,不过文中提到的一个思路点醒了我,就是重新创建一个新的springboot项目只放入websocket相关的依赖和配置启动试试是否能连上,然后我试了一下确实没问题,那就排除了是springboot对websocket不支持或者不兼容的可能,问题一定出在了原项目的配置中,于是我回去排查原来项目的配置,发现一个很尴尬的问题,我的websocket请求被shiro拦截了,拦截了,截了,了……于是修改shiro配置把websocket的路径拦截放开再试,果然连上了o(╥﹏╥)o。
废了九牛二虎之力一天时间各种查资料结果困住我的竟然只是一个小小的shiro配置,差点哭晕在厕所,尴尬的要死,所以这个故事告诉我们一个道理,那就是要对项目了解细致,不然什么地方出个问题把自己焊死都不知道(/ω\)~~

  • 16
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 14
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值