mirror of
https://github.com/AkiChase/scrcpy-mask
synced 2025-02-22 23:12:16 +08:00
feat(Device): add connection timeout
This commit is contained in:
parent
93389f825b
commit
fde4f7ef56
@ -51,7 +51,7 @@ const port = ref(27183);
|
|||||||
const localStore = new Store("store.bin");
|
const localStore = new Store("store.bin");
|
||||||
|
|
||||||
//#region listener
|
//#region listener
|
||||||
const deviceWaitForMetadataTask: ((deviceName: string) => void)[] = [];
|
let deviceWaitForMetadataTask: ((deviceName: string) => void) | null = null;
|
||||||
|
|
||||||
let unlisten: UnlistenFn | undefined;
|
let unlisten: UnlistenFn | undefined;
|
||||||
onMounted(async () => {
|
onMounted(async () => {
|
||||||
@ -67,8 +67,7 @@ onMounted(async () => {
|
|||||||
let payload = JSON.parse(event.payload as string);
|
let payload = JSON.parse(event.payload as string);
|
||||||
switch (payload.type) {
|
switch (payload.type) {
|
||||||
case "MetaData":
|
case "MetaData":
|
||||||
let task = deviceWaitForMetadataTask.shift();
|
deviceWaitForMetadataTask?.(payload.deviceName);
|
||||||
task?.(payload.deviceName);
|
|
||||||
break;
|
break;
|
||||||
case "ClipboardChanged":
|
case "ClipboardChanged":
|
||||||
console.log("剪切板变动", payload.clipboard);
|
console.log("剪切板变动", payload.clipboard);
|
||||||
@ -195,7 +194,7 @@ async function onMenuSelect(key: string) {
|
|||||||
sizeW: store.screenSizeW,
|
sizeW: store.screenSizeW,
|
||||||
sizeH: store.screenSizeH,
|
sizeH: store.screenSizeH,
|
||||||
});
|
});
|
||||||
message.info("屏幕尺寸已保存,正在启动控制服务");
|
message.info("屏幕尺寸已保存,正在启动控制服务,请保持设备亮屏");
|
||||||
|
|
||||||
let device = devices.value[rowIndex];
|
let device = devices.value[rowIndex];
|
||||||
|
|
||||||
@ -207,17 +206,29 @@ async function onMenuSelect(key: string) {
|
|||||||
await forwardServerPort(device.id, scid, port.value);
|
await forwardServerPort(device.id, scid, port.value);
|
||||||
await startScrcpyServer(device.id, scid, `127.0.0.1:${port.value}`);
|
await startScrcpyServer(device.id, scid, `127.0.0.1:${port.value}`);
|
||||||
|
|
||||||
|
// connection timeout check
|
||||||
|
let id = setTimeout(async () => {
|
||||||
|
if (deviceWaitForMetadataTask) {
|
||||||
|
await shutdown();
|
||||||
|
store.controledDevice = null;
|
||||||
|
store.hideLoading();
|
||||||
|
message.error("设备连接超时");
|
||||||
|
}
|
||||||
|
}, 4000);
|
||||||
|
|
||||||
// add cb for metadata
|
// add cb for metadata
|
||||||
deviceWaitForMetadataTask.push((deviceName: string) => {
|
deviceWaitForMetadataTask = (deviceName: string) => {
|
||||||
store.controledDevice = {
|
store.controledDevice = {
|
||||||
scid,
|
scid,
|
||||||
deviceName,
|
deviceName,
|
||||||
device,
|
device,
|
||||||
};
|
};
|
||||||
nextTick(() => {
|
nextTick(() => {
|
||||||
|
deviceWaitForMetadataTask = null;
|
||||||
|
clearTimeout(id);
|
||||||
store.hideLoading();
|
store.hideLoading();
|
||||||
});
|
});
|
||||||
});
|
};
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user