You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WebSocket仅能在Safari建立连接,Chrome/Edge报EOFException求助排查

WebSocket连接异常排查(仅Safari可用,Chrome/Edge报EOFException)

可能的问题及解决方案:

  • 握手拦截器未配置
    你的代码中注入了UserHandlerShakeHandler但未在WebSocket注册时添加,Chrome/Edge对跨域握手的校验更严格,缺失拦截器可能导致连接中断。修改Spring Boot配置:

    @Configuration 
    @EnableWebSocket 
    public class WsConfig implements WebSocketConfigurer { 
        @Autowired UserWsHandler userWsHandler; 
        @Autowired UserHandlerShakeHandler userHandlerShakeHandler; 
    
        @Override 
        public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) { 
            registry.addHandler(userWsHandler, "/loginWs")
                    .addInterceptors(userHandlerShakeHandler) // 添加握手拦截器
                    .setAllowedOriginPatterns("*"); 
        }
    }
    
  • 混合内容拦截
    如果你的前端页面通过HTTPS访问,但WebSocket使用ws://(HTTP协议),Chrome/Edge会拦截这类混合内容(Safari限制较宽松)。解决方式:

    • 前端页面和WebSocket统一协议:页面用HTTP则WebSocket用ws://,页面用HTTPS则WebSocket改用wss://并配置Spring Boot SSL。
    • 测试阶段可临时在Chrome启用chrome://flags/#allow-insecure-localhost,重启浏览器后重试(生产环境禁用)。
  • WebSocketHandler异常
    检查UserWsHandler的连接、消息处理逻辑,若存在未捕获的异常,会导致Chrome/Edge端连接被强制关闭触发EOFException。建议在handler方法中添加日志,打印连接建立、消息接收的完整流程,定位异常点。

  • 浏览器插件或代理干扰
    Chrome/Edge的代理、广告拦截等插件可能拦截WebSocket连接,尝试用隐身模式打开页面,或禁用所有扩展后测试。

内容的提问来源于stack exchange,提问作者Steven Linus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 03:50:03