Websocket使用

如题所述

第1个回答  2022-06-15
springboot 整合 websocket的使用,Demo实例在码云里;

1.启动项目报错@ServerEndpoint 注册失败,java.lang.IllegalStateException: Failed to register @ServerEndpoint class: class com.*$$EnhancerBySpringCGLIB$$b83c4359,参考了下: https://www.jianshu.com/p/bc15f83cf374 ,解决办法是:将此类放移至非aop扫描包之下

2. WebSocket错误:java.lang.IllegalStateException: The WebSocket session [1] has been closed and no method (apart from close()) may be called on a closed session ,出现这个问题的原因是:在建立连接时保存的对象id,在断开连接时移除失败,所以对应services中的onOpen()方法存储的id 以及 onClose()方法中移除的id ,即可。

3.本地开发的时候,需要手写WebsocketConfiguration类,交由spring管理 ServerEndpointExporter 类,但是当打包war包然后运行在tomcat等中间件时,此类将影响项目启动websocket,所以打包时需注意这个文件