spring+websocket 前台500问题总结

来源:互联网 发布:java线程池例子 编辑:程序博客网 时间:2024/06/05 07:05

最近公司需要完成一个后台向前端页面进行获奖信息的推送功能。我在网上找了些资料 发现有websocket和轮询(好像还有长连接),但是websocket是最省资源的,但是在学习demo的时候遇到的坑 摔差点要吐血,特在此记录一下,为了提醒自己也为了给猿友参考下。

先在这提醒一下,websocket有好几种实现方式(spring,springboot,tomcat的都有)。

问题大概有:1、前台403,后台未报错

这种情况需要配置:setAllowedOrigins(*)

registry.addHandler(systemWebSocketHandler(),"/webSocketServer").setAllowedOrigins("*");        registry.addHandler(systemWebSocketHandler(),"/webSocketServer/sockjs").setAllowedOrigins("*").withSockJS();

    2、前台500、后台

org.apache.tomcat.websocket.server.WsServerContainer cannot be cast to javax.websocket.server.ServerContainer

这个问题后台抛出了异常,此时注意pom.xml jar是否冲突

<!-- websocket --><!-- <dependency>//切记不要引用这个包,第二天我全部时间全浪费在这<groupId>javax.websocket</groupId><artifactId>javax.websocket-api</artifactId><version>1.1</version></dependency> --><dependency><groupId>org.springframework</groupId><artifactId>spring-messaging</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-websocket</artifactId><version>${spring.version}</version></dependency>

我在war和pom.xml并没有发现 j2ee和tomcat-scoket的jar,所以网上其他人说需要删除的jar也不存在,但万念俱灰的情况下觉得 javax.websocket-api 好像没有什么用,所以就给注释掉了,但是发现竟然突然可握手发送消息了。