网友回复
以下是vue版本的一个websocket重连机制,代码如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0,maximum=1.0,minimum=1.0,user-scalable=0" />
<script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/vue@2.6.1.js"></script>
</head>
<body>
<div id="app">
</div>
<script>
let websock = null;
let socketTimer = null;
let socketParam = {
type: 'test'
};
new Vue({
el: '#app',
name: 'test',
data () {
return {
socketUrl: 'ws://web.debug.only.bfw.wiki:9502',
timerWS: null, // 用于ws重连
timerCountWS: 0, // 用于重连计数,0-立刻开始重连,非0-1min重连一次。
timerFlagWS: true // 跳转页面了不再重连
}
},
mounted () {
this.initWebsocket()
},
destroyed () {
// 关闭websocket
this.timerFlagWS = false;
this.timerCountWS = 0;
clearTimeout(this.timerWS)
if (websock !== null) {
websock.close();
websock = null;
}
clearTimeout(socketTimer);
},
methods: {
initWebsocket () {
if (typeof WebSocket !== 'undefined') {
this.timerCountWS++;
// 浏览器支持Websocket通信协议 ...点击查看剩余70%
jquery版本的websocket断线重连,代码如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0,maximum=1.0,minimum=1.0,user-scalable=0" />
<script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/jquery-3.2.1.min.js"></script>
<script type="text/javascript">
$(function() {
var lockReconnect = false;//避免重复连接
var ws = null; //WebSocket的引用
var wsUrl = "web.debug.only.bfw.wiki:9992"; //这个要与后端提供的相同
//创建WebSocket连接,如果不确定浏览器是否支持,可以使用socket.js做连接
function createWebSocket(url){
try {
if ('WebSocket' in window) {
ws = new WebSocket("ws://" + url + "/socketServer");
} else {
ws = new SockJS("http://" + url + "/sockjs/socketServer");
}
initEventHandle();
} catch (e) {
reconnect(wsUrl);
}
}
function reconnect(url) {
if(lockReconnect) return;
lockReconnect = true;
//没连接上会一直重连,设置延迟避免请求过多
setTimeout(function () {
createWebSocket(wsUrl);
console.log("正在重连,当前时间"+new Date())
lockReconnect = false;
}, 5000); //这里设置重连间...点击查看剩余70%
阿里云ESA、cloudflare worker、腾讯云EdgeOne网站代理托管哪家更好?
剪映能打开.fcpxml格式的文件吗?
增量式编码器与绝对式编码器的区别是啥?
有没有开源的单张照片或者序列帧图片或视频就能重建4d场景动画项目?
chrome网页突然报错:错误代码:RESULT_CODE_KILLED_BAD_MESSAGE
openai的codex如何全程无需手动确认自动修改文件?
阿里云oss前端上传文件直传如何限制文件类型?
阿里云oss前端获取policy签名直传oss上传文件回调如何传?
如何将根据三维物体通过提示词变成可交互的4d场景动画?
浏览器中实时摄像头离线视觉ai模型有吗?


