JavaScript中WebSocket断开的原因是什么

  介绍

这篇文章给大家介绍JavaScript中WebSocket断开的原因是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

JavaScript是什么

JavaScript是一种直译式的脚本语言,其解释器被称为JavaScript引擎,是浏览器的一部分,JavaScript是被广泛用于客户端的脚本语言,最早是在HTML网页上使用,用来给HTML网页增加动态功能。

1,断开原因

WebSocket断开的原因有很多,最好在WebSocket断开时,将错误打印出来。

ws.onclose =, function  (e), {   console.log才能(& # 39;websocket 断开:,& # 39;,+,e.code  +, & # 39;, & # 39;, +, e.reason  +, & # 39;, & # 39;, +, e.wasClean)   console.log才能(e)   }

错误状态码:

WebSocket断开时,会触发CloseEvent, CloseEvent会在连接关闭时发送给使用WebSockets的客户端。它在WebSocket对象的> var  lockReconnect =,假,,,//避免ws重复连接   var  ws =,零,,,,,,,,,,,//,判断当前浏览器是否支持WebSocket   var  wsUrl =, serverConfig.socketUrl;   createWebSocket (wsUrl);,,,//连接ws      function  createWebSocket (url), {   ,,,试着{   ,,,,,,,如果(& # 39;websocket # 39;,拷贝窗口){   ,,,,,,,,,,,ws =, new  WebSocket (url);   ,,,,,,,}   ,,,,,,,initEventHandle ();   ,,,}捕捉(e) {   ,,,,,,,连接(url);   ,,,,,,,console.log (e);   ,,,},,,,,   }      function  initEventHandle (), {   ,,,ws.onclose =, function  (), {   ,,,,,,,连接(wsUrl);   ,,,,,,,console.log(“国际连接关闭!“+ new 日期().toLocaleString ());   ,,,};   ,,,ws.onerror =, function  (), {   ,,,,,,,连接(wsUrl);   ,,,,,,,console.log(“国际连接错误!“);   ,,,};   ,,,ws.onopen =, function  (), {   ,,,,,,,heartCheck.reset () .start(),,,,,,,//心跳检测重置   ,,,,,,,console.log(“国际连接成功!“+ new 日期().toLocaleString ());   ,,,};   ,,,ws.onmessage =, function (事件),{,,,//如果获取到消息,心跳检测重置   ,,,,,,,heartCheck.reset () .start(),,,,,,,//拿到任何消息都说明当前连接是正常的   ,,,,,,,console.log(“国际收到消息啦:“,+ event.data);   ,,,,,,,如果(event.data !=& # 39; pong # 39;) {   ,,,,,,,,,,,let  data =, jsON.parse (event.data);   ,,,,,,,}   ,,,};   }//,监听窗口关闭事件,当窗口关闭时,主动去关闭websocket连接,防止连接还没断开就关闭窗口,服务器端会抛异常。   时间=window.onbeforeunload 函数(),{   ,,,ws.close ();   },,      function 连接(url), {   ,,,如果(lockReconnect),返回;   ,,,lockReconnect =,真的;   ,,,setTimeout (function (),{,,,,//没连接上会一直重连,设置延迟避免请求过多   ,,,,,,,createWebSocket (url);   ,,,,,,,lockReconnect =,假;   ,,,},,2000);   }//心跳检测   var  heartCheck =, {   超时:,,,,1000,,,,,,,,,//1分钟发一次心跳   ,,,timeoutObj:,空,   ,,,serverTimeoutObj:,空,   ,,,重置:,函数(){   ,,,,,,,clearTimeout (this.timeoutObj);   ,,,,,,,clearTimeout (this.serverTimeoutObj);   ,,,,,,,return ;   ,,,},   ,,,开始:,函数(){   ,,,,,,,var  self =,;   ,,,,,,,this.timeoutObj =, setTimeout(函数(){   ,,,,,,,,,,,//这里发送一个心跳,后端收到后,返回一个心跳消息,   ,,,,,,,,,,,//onmessage拿到返回的心跳就说明连接正常   ,,,,,,,,,,,ws.send (“ping");   ,,,,,,,,,,,console.log(“萍!“)   null   null   null   null   null   null   null   null   null   null   null   null   null   null

JavaScript中WebSocket断开的原因是什么