将背景图像移动到::after伪元素中,避免z-index冲突问题
This commit is contained in:
@@ -284,14 +284,11 @@ const streamLoading = ref(false);
|
||||
const streamError = ref("");
|
||||
const controlWsStatus = ref("未连接");
|
||||
const controlError = ref("");
|
||||
const controlReconnectLimit = 5;
|
||||
const controlReconnectDelay = 2000;
|
||||
let streamPeerConnection = null;
|
||||
let streamRequestId = 0;
|
||||
let controlSocket = null;
|
||||
let controlRequestSeed = 0;
|
||||
let controlReconnectTimer = null;
|
||||
let controlReconnectAttempts = 0;
|
||||
let controlSocketManualClose = false;
|
||||
let chassisControlTimer = null;
|
||||
let ptzControlTimer = null;
|
||||
@@ -629,17 +626,11 @@ function scheduleControlReconnect() {
|
||||
if (controlSocketManualClose || controlReconnectTimer !== null) {
|
||||
return;
|
||||
}
|
||||
if (controlReconnectAttempts >= controlReconnectLimit) {
|
||||
controlWsStatus.value = "连接失败";
|
||||
controlError.value = "控制 WebSocket 连接失败,请检查 /ws/ros 服务或登录状态";
|
||||
return;
|
||||
}
|
||||
controlReconnectAttempts += 1;
|
||||
controlWsStatus.value = `重连中(${controlReconnectAttempts}/${controlReconnectLimit})`;
|
||||
controlWsStatus.value = "重连中";
|
||||
controlReconnectTimer = window.setTimeout(() => {
|
||||
controlReconnectTimer = null;
|
||||
connectControlSocket();
|
||||
}, controlReconnectDelay);
|
||||
}, 2e3);
|
||||
}
|
||||
function connectControlSocket() {
|
||||
if (controlSocket && (controlSocket.readyState === WebSocket.OPEN || controlSocket.readyState === WebSocket.CONNECTING)) {
|
||||
@@ -648,17 +639,13 @@ function connectControlSocket() {
|
||||
controlSocketManualClose = false;
|
||||
controlError.value = "";
|
||||
controlWsStatus.value = "连接中";
|
||||
const socket = new WebSocket(buildControlWsUrl());
|
||||
controlSocket = socket;
|
||||
socket.onopen = () => {
|
||||
controlReconnectAttempts = 0;
|
||||
controlSocket = new WebSocket(buildControlWsUrl());
|
||||
controlSocket.onopen = () => {
|
||||
controlWsStatus.value = "已连接";
|
||||
};
|
||||
socket.onmessage = (event) => {
|
||||
controlSocket.onmessage = (event) => {
|
||||
if (event.data === "ping") {
|
||||
if (socket.readyState === WebSocket.OPEN) {
|
||||
socket.send("pong");
|
||||
}
|
||||
controlSocket?.send("pong");
|
||||
return;
|
||||
}
|
||||
if (event.data === "pong") {
|
||||
@@ -689,27 +676,18 @@ function connectControlSocket() {
|
||||
console.error(error);
|
||||
}
|
||||
};
|
||||
socket.onerror = () => {
|
||||
if (socket === controlSocket) {
|
||||
controlError.value = "控制 WebSocket 连接异常";
|
||||
}
|
||||
controlSocket.onerror = () => {
|
||||
controlError.value = "控制 WebSocket 连接异常";
|
||||
};
|
||||
socket.onclose = (event) => {
|
||||
if (socket !== controlSocket) {
|
||||
return;
|
||||
}
|
||||
controlSocket = null;
|
||||
controlSocket.onclose = () => {
|
||||
controlWsStatus.value = "未连接";
|
||||
if (controlSocketManualClose || event.code === 1000) {
|
||||
return;
|
||||
}
|
||||
controlSocket = null;
|
||||
scheduleControlReconnect();
|
||||
};
|
||||
return socket;
|
||||
return controlSocket;
|
||||
}
|
||||
function closeControlSocket() {
|
||||
controlSocketManualClose = true;
|
||||
controlReconnectAttempts = 0;
|
||||
if (controlReconnectTimer !== null) {
|
||||
window.clearTimeout(controlReconnectTimer);
|
||||
controlReconnectTimer = null;
|
||||
@@ -718,10 +696,8 @@ function closeControlSocket() {
|
||||
controlWsStatus.value = "未连接";
|
||||
return;
|
||||
}
|
||||
const socket = controlSocket;
|
||||
controlSocket.close();
|
||||
controlSocket = null;
|
||||
socket.onclose = null;
|
||||
socket.close(1000, "manual close");
|
||||
controlWsStatus.value = "未连接";
|
||||
}
|
||||
function sendControlMessage(type, data) {
|
||||
@@ -729,7 +705,6 @@ function sendControlMessage(type, data) {
|
||||
controlError.value = "当前机器人缺少设备标识";
|
||||
return;
|
||||
}
|
||||
controlReconnectAttempts = 0;
|
||||
const socket = connectControlSocket();
|
||||
const payload = {
|
||||
type,
|
||||
|
||||
Reference in New Issue
Block a user