springboot 整合 websocket的使用,Demo實(shí)例在碼云里;
1.啟動(dòng)項(xiàng)目報(bào)錯(cuò)@ServerEndpoint 注冊(cè)失敗,java.lang.IllegalStateException: Failed to register @ServerEndpoint class: class com.*$$EnhancerBySpringCGLIB$$b83c4359,參考了下:http://m.itdecent.cn/p/bc15f83cf374,解決辦法是:將此類放移至非aop掃描包之下
2.WebSocket錯(cuò)誤:java.lang.IllegalStateException: The WebSocket session [1] has been closed and no method (apart from close()) may be called on a closed session,出現(xiàn)這個(gè)問題的原因是:在建立連接時(shí)保存的對(duì)象id,在斷開連接時(shí)移除失敗,所以對(duì)應(yīng)services中的onOpen()方法存儲(chǔ)的id 以及 onClose()方法中移除的id ,即可。
3.本地開發(fā)的時(shí)候,需要手寫WebsocketConfiguration類,交由spring管理?ServerEndpointExporter 類,但是當(dāng)打包war包然后運(yùn)行在tomcat等中間件時(shí),此類將影響項(xiàng)目啟動(dòng)websocket,所以打包時(shí)需注意這個(gè)文件