Springboot整合Websocket遇到的坑


Springboot整合Websocket遇到的坑

一、使用Springboot内嵌的tomcat启动websocket

1.添加ServerEndpointExporter配置bean

@Configuration
public class WebSocketConfig {

    /**
     * 服务器节点
     *
     * 如果使用独立的servlet容器,而不是直接使用springboot的内置容器,就不要注入ServerEndpointExporter,因为它将由容器自己提供和管理
     * @return
     */
    @Bean
    public ServerEndpointExporter serverEndpointExporter() {
        return new ServerEndpointExporter();
    }

}

2.在接收连接的类加上@ServerEndpoint和@Component

@ServerEndpoint("/connect")
@Component

二、使用外部tomcat容器启动websocket

1.删除ServerEndpointExporter配置bean

2.接收连接的类删除@Component

三、websocket关闭连接异常

如果客户端关闭了websocket,但服务端没有监听到关闭事件,即onClose方法没有调用,这是会发生的情况

此时如果服务端向客户端推送消息,会出现异常告诉开发者:关闭了一个连接,并重新调用onClose方法


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM