美文网首页
Springboot整合Websocket遇到的坑

Springboot整合Websocket遇到的坑

作者: 惜时流光沿途留殇 | 来源:发表于2020-09-26 14:08 被阅读0次

    一、使用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方法

    相关文章

      网友评论

          本文标题:Springboot整合Websocket遇到的坑

          本文链接:https://www.haomeiwen.com/subject/jykdhktx.html