正式检测代码提交
This commit is contained in:
@@ -18,6 +18,12 @@ export default class SocketService {
|
|||||||
sendRetryCount = 0;
|
sendRetryCount = 0;
|
||||||
// 重新连接尝试的次数
|
// 重新连接尝试的次数
|
||||||
connectRetryCount = 0;
|
connectRetryCount = 0;
|
||||||
|
|
||||||
|
heartbeatTimer;
|
||||||
|
heartbeatInterval = 6000; // 心跳间隔,单位毫秒
|
||||||
|
lastActivityTime= 0; // 上次活动时间戳
|
||||||
|
reconnectDelay= 5000; // 重新连接延迟,单位毫秒
|
||||||
|
|
||||||
// 定义连接服务器的方法
|
// 定义连接服务器的方法
|
||||||
connect(url) {
|
connect(url) {
|
||||||
|
|
||||||
@@ -38,6 +44,8 @@ export default class SocketService {
|
|||||||
this.connected = true;
|
this.connected = true;
|
||||||
// 重置重新连接的次数
|
// 重置重新连接的次数
|
||||||
this.connectRetryCount = 0;
|
this.connectRetryCount = 0;
|
||||||
|
this.updateLastActivityTime();
|
||||||
|
this.startHeartbeat();
|
||||||
};
|
};
|
||||||
// 1.连接服务端失败
|
// 1.连接服务端失败
|
||||||
// 2.当连接成功之后, 服务器关闭的情况
|
// 2.当连接成功之后, 服务器关闭的情况
|
||||||
@@ -45,13 +53,18 @@ export default class SocketService {
|
|||||||
console.log('连接服务端失败');
|
console.log('连接服务端失败');
|
||||||
this.connected = false;
|
this.connected = false;
|
||||||
this.connectRetryCount++;
|
this.connectRetryCount++;
|
||||||
|
this.clearHeartbeat();
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
// this.connect();
|
// this.connect();
|
||||||
}, 500 * this.connectRetryCount);
|
}, 500 * this.connectRetryCount);
|
||||||
|
|
||||||
|
|
||||||
};
|
};
|
||||||
// 得到服务端发送过来的数据
|
// 得到服务端发送过来的数据
|
||||||
this.ws.onmessage = (event) => {
|
this.ws.onmessage = (event) => {
|
||||||
let message: { [key: string]: any };
|
let message: { [key: string]: any };
|
||||||
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
console.log('Received message:',event.data)
|
console.log('Received message:',event.data)
|
||||||
message = JSON.parse(event.data);
|
message = JSON.parse(event.data);
|
||||||
@@ -69,6 +82,39 @@ export default class SocketService {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
startHeartbeat() {
|
||||||
|
this.heartbeatTimer = setInterval(() => {
|
||||||
|
if ((Date.now() - this.lastActivityTime) > this.heartbeatInterval) {
|
||||||
|
// 如果超过心跳间隔没有活动,发送心跳消息
|
||||||
|
this.sendHeartbeat();
|
||||||
|
}
|
||||||
|
}, this.heartbeatInterval/2); // 每半个心跳间隔检查一次
|
||||||
|
}
|
||||||
|
sendHeartbeat() {
|
||||||
|
console.log("进入心跳消息发送。。。。。。。。。。。。。")
|
||||||
|
this.ws.send('alive');
|
||||||
|
this.updateLastActivityTime(); // 发送心跳后更新活动时间
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
updateLastActivityTime() {
|
||||||
|
this.lastActivityTime = Date.now();
|
||||||
|
}
|
||||||
|
|
||||||
|
clearHeartbeat() {
|
||||||
|
if (this.heartbeatTimer) {
|
||||||
|
clearInterval(this.heartbeatTimer);
|
||||||
|
this.heartbeatTimer = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// 回调函数的注册
|
// 回调函数的注册
|
||||||
registerCallBack(socketType, callBack) {
|
registerCallBack(socketType, callBack) {
|
||||||
this.callBackMapping[socketType] = callBack;
|
this.callBackMapping[socketType] = callBack;
|
||||||
|
|||||||
@@ -178,7 +178,9 @@ const testRef = ref(null);
|
|||||||
// const devIdArr = ref([])
|
// const devIdArr = ref([])
|
||||||
// const planId = ref('')
|
// const planId = ref('')
|
||||||
|
|
||||||
|
const dataSocket = reactive({
|
||||||
|
socketServe: socketClient.Instance,
|
||||||
|
});
|
||||||
// 打开弹窗,可能是新增,也可能是编辑
|
// 打开弹窗,可能是新增,也可能是编辑
|
||||||
const open = (selection: Device.ResPqDev[], title: string, time: boolean) => {
|
const open = (selection: Device.ResPqDev[], title: string, time: boolean) => {
|
||||||
|
|
||||||
@@ -213,13 +215,11 @@ const open = (selection: Device.ResPqDev[], title: string, time: boolean) => {
|
|||||||
|
|
||||||
preTestStatus.value = 'waiting';//预检测执行状态
|
preTestStatus.value = 'waiting';//预检测执行状态
|
||||||
//开始创建webSocket客户端
|
//开始创建webSocket客户端
|
||||||
const data = reactive({
|
|
||||||
socketServe: socketClient.Instance,
|
|
||||||
});
|
|
||||||
const url = 'ws://localhost:7777/hello?name=cdf';
|
const url = 'ws://localhost:7777/hello?name=cdf';
|
||||||
socketClient.Instance.connect(url);
|
socketClient.Instance.connect(url);
|
||||||
data.socketServe = socketClient.Instance;
|
dataSocket.socketServe = socketClient.Instance;
|
||||||
data.socketServe.registerCallBack('aaa', (res) => {
|
dataSocket.socketServe.registerCallBack('aaa', (res) => {
|
||||||
// 处理来自服务器的消息
|
// 处理来自服务器的消息
|
||||||
// console.log('Received message:', res);
|
// console.log('Received message:', res);
|
||||||
// 根据需要在这里添加更多的处理逻辑
|
// 根据需要在这里添加更多的处理逻辑
|
||||||
@@ -235,6 +235,10 @@ const open = (selection: Device.ResPqDev[], title: string, time: boolean) => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
let loading;
|
let loading;
|
||||||
@@ -496,6 +500,8 @@ const beforeClose = (done: () => void) => {
|
|||||||
// })
|
// })
|
||||||
}
|
}
|
||||||
const handleCancel = () => {
|
const handleCancel = () => {
|
||||||
|
dataSocket.socketServe.closeWs()
|
||||||
|
|
||||||
emit('quitClicked'); // 触发事件
|
emit('quitClicked'); // 触发事件
|
||||||
// clearData()
|
// clearData()
|
||||||
// emit('update:visible', false); // 关闭对话框
|
// emit('update:visible', false); // 关闭对话框
|
||||||
|
|||||||
Reference in New Issue
Block a user