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

Firefox建立WebSocket连接不等待直接返回1006关闭码问题求解

问题根因排查与解决方案

你遇到的1006错误直接断连的核心诱因和Firefox的页面上下文销毁逻辑、混合内容策略相关,对应排查和修复方案如下:

  • 自定义协议触发逻辑的上下文冲突:你使用target="_parent"触发自定义协议时,Firefox会判定当前页面即将被跳转替换,主动销毁所有未完成的网络请求,处于CONNECTING状态的WebSocket会被直接中断,表现为0字节请求、无open事件直接触发close。Chrome的pending请求销毁时机更晚,因此可以正常保留连接。
    修复方式:
    1. 替换跳转方式为隐藏iframe加载自定义协议链接,完全不触碰当前页面的上下文,WebSocket连接不会被销毁
    2. 改为target="_blank"触发自定义协议,触发后自动关闭新开的空标签页,也不会影响原有页面的网络请求
  • 混合内容拦截排查:如果你的前端页面是通过HTTPS协议访问,而WebSocket用的是未加密的ws协议,Firefox默认会拦截这类混合内容请求,直接断开连接。你可以在about:config中检查network.websocket.allowInsecureFromHTTPS配置,本地测试时可以临时改为true验证问题是否解决,生产环境建议统一用wss协议。
  • 握手规范兼容排查:Firefox对WebSocket握手的规范校验比Chrome严格,如果后续你启动的WebSocket服务端返回的握手响应缺少Sec-WebSocket-Accept头、或者Upgrade/Connection头格式不符合RFC标准,Firefox会直接断开连接,不会做容错处理。你可以先启动一个最小实现的WebSocket测试服务端,排除服务端握手逻辑的兼容问题。
  • 时序调整:可以调整逻辑顺序,先触发自定义协议启动服务端,再初始化WebSocket连接,避免连接建立过程中被其他操作中断。

内容的提问来源于stack exchange,提问作者elias-berg

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 23:36:05