Javascript Firefox没有';连接错误时是否立即关闭WebSocket?

Javascript Firefox没有';连接错误时是否立即关闭WebSocket?,javascript,firefox,websocket,Javascript,Firefox,Websocket,我有这个演示代码: <!DOCTYPE html> <html lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> </head> <body onload="init()"> <script type="text/javascript">

我有这个演示代码:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
  </head>
    <body onload="init()">
      <script type="text/javascript">
        function init() {
            this.ws = new WebSocket("ws://localhost:1234");
            console.log("opening");

            // on close, display message and try to reopen
            this.ws.onclose = function (evt) {
                console.log("closed");
            }
        }
      </script>
    </body>
</html>

函数init(){
this.ws=newwebsocket(“ws://localhost:1234”);
控制台日志(“打开”);
//关闭时,显示消息并尝试重新打开
this.ws.onclose=函数(evt){
控制台日志(“关闭”);
}
}
连接到不存在的websocket终结点的。我预计这基本上会立即出错,但在Firefox中,打印“打开”和打印“关闭”之间的时间超过一分钟:

这是预期的行为,还是可以将其配置为更快超时?在Chrome中,连接错误会立即消失:


找到了。这是符合RFC 6455的行为。每个补丁最多使用60秒的指数回退。不幸的是,我认为这意味着自动重新连接到Firefox中的websocket端点已中断。

我使用的是Firefox 71.0(64位),它会立即写入错误/关闭连接(与Chrome中的行为相同)。。我是LinuxMint上的Firefox71(64位),在MacBookPro Catalina 10.15.2上运行这个程序。对我来说,它总是花费>60秒。标记说明:这是超级糟糕的JS。您正在编写现代HTML和JS:不要在HTML元素上使用任何
。(1) 不要对脚本标记使用
type=“text/javascript”:您使用的是HTML5:
script`默认为javascript。(2) 使您的JS成为实际的文件,以便(3)您可以使用
。这将与其他内容并行加载源代码,但只有在解析完整个文档后才能运行它。然后将该
放在head元素中。现在我们有了
async
defer
,不要再把JS放在你的身体里了。另外:
。再一次:HTML5@Mike“Pomax”Kamermans感谢您提供的宝贵信息,但(1)这有什么帮助?(2) 非常确定OP刚刚提供了演示/示例,作为用于测试的“最低分母”类型的代码…@gct Linux Mint使用的是哪个桌面?我可以快速启动虚拟机进行测试。。