@aiscene/aiserver 1.9.5 → 1.9.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/config/cli.d.ts +0 -3
- package/dist/config/cli.d.ts.map +1 -1
- package/dist/config/cli.js +0 -3
- package/dist/config/cli.js.map +1 -1
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +0 -3
- package/dist/config/index.js.map +1 -1
- package/dist/config/schema.d.ts +0 -3
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/core/types.d.ts +0 -3
- package/dist/core/types.d.ts.map +1 -1
- package/dist/debug/types.d.ts +0 -3
- package/dist/debug/types.d.ts.map +1 -1
- package/dist/debug/websocket-server.d.ts +5 -0
- package/dist/debug/websocket-server.d.ts.map +1 -1
- package/dist/debug/websocket-server.js +70 -13
- package/dist/debug/websocket-server.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/login/android-login-context.d.ts.map +1 -1
- package/dist/login/android-login-context.js +11 -3
- package/dist/login/android-login-context.js.map +1 -1
- package/dist/scrcpy/server.d.ts +8 -0
- package/dist/scrcpy/server.d.ts.map +1 -1
- package/dist/scrcpy/server.js +253 -134
- package/dist/scrcpy/server.js.map +1 -1
- package/dist/task/execution-profile.d.ts.map +1 -1
- package/dist/task/execution-profile.js +3 -0
- package/dist/task/execution-profile.js.map +1 -1
- package/dist/task/scheduler.d.ts +1 -0
- package/dist/task/scheduler.d.ts.map +1 -1
- package/dist/task/scheduler.js +47 -0
- package/dist/task/scheduler.js.map +1 -1
- package/dist/task/test-case-reference-resolver.d.ts +16 -0
- package/dist/task/test-case-reference-resolver.d.ts.map +1 -0
- package/dist/task/test-case-reference-resolver.js +283 -0
- package/dist/task/test-case-reference-resolver.js.map +1 -0
- package/dist/task/types.js +33 -1
- package/dist/task/types.js.map +1 -1
- package/dist/web/debug-api.js +2 -5
- package/dist/web/debug-page.d.ts.map +1 -1
- package/dist/web/debug-page.js +49 -73
- package/dist/web/debug-page.js.map +1 -1
- package/dist/web/debug.html +1 -21
- package/dist/web/server.d.ts +5 -0
- package/dist/web/server.d.ts.map +1 -1
- package/dist/web/server.js +35 -1
- package/dist/web/server.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"android-login-context.d.ts","sourceRoot":"","sources":["../../src/login/android-login-context.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAEvC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAS9E,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,OAAO,CAAC;AAClD,MAAM,MAAM,yBAAyB,GAAG,MAAM,GAAG,UAAU,CAAC;AAE5D,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,SAAS,GAAG,KAAK,CAAC;IAC7B,MAAM,CAAC,EAAE,kBAAkB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtD,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,yBAAyB,CAAC;IAC1C,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;
|
|
1
|
+
{"version":3,"file":"android-login-context.d.ts","sourceRoot":"","sources":["../../src/login/android-login-context.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAEvC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAS9E,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,OAAO,CAAC;AAClD,MAAM,MAAM,yBAAyB,GAAG,MAAM,GAAG,UAAU,CAAC;AAE5D,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,SAAS,GAAG,KAAK,CAAC;IAC7B,MAAM,CAAC,EAAE,kBAAkB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtD,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,yBAAyB,CAAC;IAC1C,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAqBD,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,mBAAmB,GAAG,SAAS,CAsCjC;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAa/E;AA8FD,wBAAsB,mBAAmB,CAAC,OAAO,EAAE;IACjD,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,0BAA0B,CAAC,EAAE,OAAO,CAAC;CACtC,GAAG,OAAO,CAAC,OAAO,CAAC,CAoDnB;AAED,wBAAsB,eAAe,CAAC,OAAO,EAAE;IAC7C,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,IAAI,EAAE,IAAI,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;CACnB,GAAG,OAAO,CAAC,OAAO,CAAC,CAwCnB"}
|
|
@@ -8,6 +8,14 @@ const logger = createLogger('AndroidLogin');
|
|
|
8
8
|
function nonEmptyString(value) {
|
|
9
9
|
return typeof value === 'string' && value.trim() ? value : undefined;
|
|
10
10
|
}
|
|
11
|
+
function sanitizeLoginVariables(variables) {
|
|
12
|
+
const sanitized = { ...(variables || {}) };
|
|
13
|
+
delete sanitized.loginUsername;
|
|
14
|
+
delete sanitized.loginPassword;
|
|
15
|
+
delete sanitized.login_username;
|
|
16
|
+
delete sanitized.login_password;
|
|
17
|
+
return sanitized;
|
|
18
|
+
}
|
|
11
19
|
export function resolveAndroidLoginContext(source) {
|
|
12
20
|
const direct = source.loginContext;
|
|
13
21
|
const legacy = source.loginConfig;
|
|
@@ -32,9 +40,9 @@ export function resolveAndroidLoginContext(source) {
|
|
|
32
40
|
platform: direct?.platform,
|
|
33
41
|
script,
|
|
34
42
|
variables: {
|
|
35
|
-
...(direct?.variables
|
|
36
|
-
...(username ? { username
|
|
37
|
-
...(password ? { password
|
|
43
|
+
...sanitizeLoginVariables(direct?.variables),
|
|
44
|
+
...(username ? { username } : {}),
|
|
45
|
+
...(password ? { password } : {}),
|
|
38
46
|
},
|
|
39
47
|
resetApp: direct?.resetApp !== false,
|
|
40
48
|
failurePolicy: direct?.failurePolicy || 'fail',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"android-login-context.js","sourceRoot":"","sources":["../../src/login/android-login-context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,OAAO,EAAE,wBAAwB,EAAE,MAAM,qCAAqC,CAAC;AAE/E,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,MAAM,MAAM,GAAG,YAAY,CAAC,cAAc,CAAC,CAAC;AAyB5C,SAAS,cAAc,CAAC,KAAc;IACpC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACvE,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,MAA+B;IAE/B,MAAM,MAAM,GAAG,MAAM,CAAC,YAA+C,CAAC;IACtE,MAAM,MAAM,GAAG,MAAM,CAAC,WAA4C,CAAC;IACnE,MAAM,MAAM,GACV,MAAM,EAAE,MAAM;QACd,MAAM,EAAE,kBAAkB;QACzB,MAAM,CAAC,kBAA+E,CAAC;IAC1F,MAAM,QAAQ,GAAG,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAClD,IAAI,CAAC,MAAM,IAAI,CAAC,QAAQ;QAAE,OAAO,SAAS,CAAC;IAE3C,MAAM,QAAQ,GACZ,cAAc,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC;QAC3C,cAAc,CAAC,MAAM,EAAE,oBAAoB,CAAC;QAC5C,cAAc,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;IAC9C,MAAM,QAAQ,GACZ,cAAc,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC;QAC3C,cAAc,CAAC,MAAM,EAAE,oBAAoB,CAAC;QAC5C,cAAc,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;IAE9C,OAAO;QACL,OAAO,EAAE,MAAM,EAAE,OAAO,KAAK,KAAK;QAClC,IAAI,EAAE,MAAM,EAAE,IAAI,IAAI,QAAQ;QAC9B,QAAQ;QACR,SAAS,EAAE,cAAc,CAAC,MAAM,EAAE,SAAS,CAAC;QAC5C,OAAO,EAAE,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC;QACxC,QAAQ,EAAE,MAAM,EAAE,QAAQ;QAC1B,MAAM;QACN,SAAS,EAAE;YACT,GAAG,CAAC,MAAM,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"android-login-context.js","sourceRoot":"","sources":["../../src/login/android-login-context.ts"],"names":[],"mappings":"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"}
|
package/dist/scrcpy/server.d.ts
CHANGED
|
@@ -66,6 +66,10 @@ export declare class ScrcpyServer {
|
|
|
66
66
|
private currentDeviceId;
|
|
67
67
|
private devicePollInterval;
|
|
68
68
|
private lastDeviceListJson;
|
|
69
|
+
private lastDeviceList;
|
|
70
|
+
private lastDeviceListAt;
|
|
71
|
+
private deviceListInFlight;
|
|
72
|
+
private deviceConnectLocks;
|
|
69
73
|
private serverBinPath;
|
|
70
74
|
private started;
|
|
71
75
|
private projectionBlockedDevices;
|
|
@@ -74,7 +78,10 @@ export declare class ScrcpyServer {
|
|
|
74
78
|
constructor(config: ScrcpyConfig);
|
|
75
79
|
private handleHttpRequest;
|
|
76
80
|
private getAdbClient;
|
|
81
|
+
private loadDevicesListFromAdb;
|
|
77
82
|
private getDevicesList;
|
|
83
|
+
private selectAvailableDeviceId;
|
|
84
|
+
private isSessionOpen;
|
|
78
85
|
private isProjectionBlocked;
|
|
79
86
|
private getProjectionBlockedMessage;
|
|
80
87
|
private getAdb;
|
|
@@ -89,6 +96,7 @@ export declare class ScrcpyServer {
|
|
|
89
96
|
private sendDevicesListTo;
|
|
90
97
|
/** 释放 session 持有的 scrcpy 资源(reader + client),用于断开/切换 */
|
|
91
98
|
private releaseSession;
|
|
99
|
+
private connectDeviceForSession;
|
|
92
100
|
private attachSocketHandlers;
|
|
93
101
|
private startDeviceMonitoring;
|
|
94
102
|
start(): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/scrcpy/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AAaH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAsBxD,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/scrcpy/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AAaH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAsBxD,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAmGD,qBAAa,YAAY;IACvB,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,GAAG,CAAkB;IAC7B,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,SAAS,CAAa;IAC9B,OAAO,CAAC,eAAe,CAAuB;IAC9C,OAAO,CAAC,kBAAkB,CAA+B;IACzD,OAAO,CAAC,kBAAkB,CAAM;IAChC,OAAO,CAAC,cAAc,CAA4B;IAClD,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,kBAAkB,CAA8C;IACxE,OAAO,CAAC,kBAAkB,CAAkC;IAC5D,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,wBAAwB,CAAkC;IAClE,iCAAiC;IACjC,OAAO,CAAC,QAAQ,CAAiD;gBAErD,MAAM,EAAE,YAAY;YAoBlB,iBAAiB;YA6CjB,YAAY;YA2BZ,sBAAsB;YAuBtB,cAAc;IA4B5B,OAAO,CAAC,uBAAuB;IAS/B,OAAO,CAAC,aAAa;IAQrB,OAAO,CAAC,mBAAmB;IAK3B,OAAO,CAAC,2BAA2B;YAOrB,MAAM;YAoCN,gBAAgB;YA2BhB,WAAW;IAwEzB,OAAO,CAAC,aAAa;IAMrB,OAAO,CAAC,oBAAoB;IA4B5B,OAAO,CAAC,4BAA4B;YA0BtB,0BAA0B;YAoB1B,kBAAkB;IAShC,OAAO,CAAC,sBAAsB;YA2BhB,iBAAiB;IAoB/B,wDAAwD;YAC1C,cAAc;YAqBd,uBAAuB;IAyOrC,OAAO,CAAC,oBAAoB;IA0iB5B,OAAO,CAAC,qBAAqB;IAYvB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAoBtB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CA8B7B"}
|
package/dist/scrcpy/server.js
CHANGED
|
@@ -139,6 +139,10 @@ export class ScrcpyServer {
|
|
|
139
139
|
currentDeviceId = null;
|
|
140
140
|
devicePollInterval = null;
|
|
141
141
|
lastDeviceListJson = '';
|
|
142
|
+
lastDeviceList = [];
|
|
143
|
+
lastDeviceListAt = 0;
|
|
144
|
+
deviceListInFlight = null;
|
|
145
|
+
deviceConnectLocks = new Map();
|
|
142
146
|
serverBinPath;
|
|
143
147
|
started = false;
|
|
144
148
|
projectionBlockedDevices = new Map();
|
|
@@ -210,7 +214,7 @@ export class ScrcpyServer {
|
|
|
210
214
|
this.adbClient = new AdbServerClient(new AdbServerNodeTcpConnector({ host: '127.0.0.1', port: 5037 }));
|
|
211
215
|
return this.adbClient;
|
|
212
216
|
}
|
|
213
|
-
async
|
|
217
|
+
async loadDevicesListFromAdb() {
|
|
214
218
|
try {
|
|
215
219
|
const client = await this.getAdbClient();
|
|
216
220
|
const devices = (await withTimeout(client.getDevices(), this.config.adbConnectTimeoutMs, `Timed out listing devices after ${Math.round(this.config.adbConnectTimeoutMs / 1000)}s`));
|
|
@@ -227,6 +231,38 @@ export class ScrcpyServer {
|
|
|
227
231
|
return [];
|
|
228
232
|
}
|
|
229
233
|
}
|
|
234
|
+
async getDevicesList(forceRefresh = false) {
|
|
235
|
+
const now = Date.now();
|
|
236
|
+
const cacheTtlMs = 2000;
|
|
237
|
+
if (!forceRefresh &&
|
|
238
|
+
this.lastDeviceListAt > 0 &&
|
|
239
|
+
now - this.lastDeviceListAt < cacheTtlMs) {
|
|
240
|
+
return this.lastDeviceList;
|
|
241
|
+
}
|
|
242
|
+
if (this.deviceListInFlight) {
|
|
243
|
+
return this.deviceListInFlight;
|
|
244
|
+
}
|
|
245
|
+
this.deviceListInFlight = this.loadDevicesListFromAdb()
|
|
246
|
+
.then((devices) => {
|
|
247
|
+
this.lastDeviceList = devices;
|
|
248
|
+
this.lastDeviceListAt = Date.now();
|
|
249
|
+
return devices;
|
|
250
|
+
})
|
|
251
|
+
.finally(() => {
|
|
252
|
+
this.deviceListInFlight = null;
|
|
253
|
+
});
|
|
254
|
+
return this.deviceListInFlight;
|
|
255
|
+
}
|
|
256
|
+
selectAvailableDeviceId(devices) {
|
|
257
|
+
const online = devices.find((device) => device.status.toLowerCase() === 'device' &&
|
|
258
|
+
!this.isProjectionBlocked(device.id));
|
|
259
|
+
return online?.id || null;
|
|
260
|
+
}
|
|
261
|
+
isSessionOpen(state) {
|
|
262
|
+
return (!state.closed &&
|
|
263
|
+
state.ws.readyState === WebSocket.OPEN &&
|
|
264
|
+
this.sessions.get(state.ws) === state);
|
|
265
|
+
}
|
|
230
266
|
isProjectionBlocked(deviceId) {
|
|
231
267
|
if (!deviceId)
|
|
232
268
|
return false;
|
|
@@ -250,14 +286,12 @@ export class ScrcpyServer {
|
|
|
250
286
|
this.currentDeviceId = targetDeviceId;
|
|
251
287
|
return new Adb(await withTimeout(client.createTransport({ serial: targetDeviceId }), this.config.adbConnectTimeoutMs, `Timed out connecting to Android device ${targetDeviceId} via ADB after ${Math.round(this.config.adbConnectTimeoutMs / 1000)}s`));
|
|
252
288
|
}
|
|
253
|
-
const devices =
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
const availableDevice = devices.find((device) => !this.isProjectionBlocked(device.serial));
|
|
257
|
-
if (!availableDevice)
|
|
289
|
+
const devices = await this.getDevicesList();
|
|
290
|
+
const availableDeviceId = this.selectAvailableDeviceId(devices);
|
|
291
|
+
if (!availableDeviceId)
|
|
258
292
|
return null;
|
|
259
|
-
this.currentDeviceId =
|
|
260
|
-
return new Adb(await withTimeout(client.createTransport(
|
|
293
|
+
this.currentDeviceId = availableDeviceId;
|
|
294
|
+
return new Adb(await withTimeout(client.createTransport({ serial: availableDeviceId }), this.config.adbConnectTimeoutMs, `Timed out connecting to ${availableDeviceId} via ADB`));
|
|
261
295
|
}
|
|
262
296
|
async wakeDeviceScreen(deviceId) {
|
|
263
297
|
const targetDeviceId = deviceId || this.currentDeviceId;
|
|
@@ -386,7 +420,7 @@ export class ScrcpyServer {
|
|
|
386
420
|
await Promise.allSettled(releases);
|
|
387
421
|
}
|
|
388
422
|
async refreshDevicesList() {
|
|
389
|
-
const devices = await this.getDevicesList();
|
|
423
|
+
const devices = await this.getDevicesList(true);
|
|
390
424
|
this.lastDeviceListJson = '';
|
|
391
425
|
this.broadcastDevicesList(devices);
|
|
392
426
|
}
|
|
@@ -403,6 +437,8 @@ export class ScrcpyServer {
|
|
|
403
437
|
scrcpyClient: null,
|
|
404
438
|
adb: null,
|
|
405
439
|
deviceId: null,
|
|
440
|
+
connectPromise: null,
|
|
441
|
+
closed: false,
|
|
406
442
|
videoWidth: 0,
|
|
407
443
|
videoHeight: 0,
|
|
408
444
|
streamReader: null,
|
|
@@ -415,9 +451,14 @@ export class ScrcpyServer {
|
|
|
415
451
|
async sendDevicesListTo(state) {
|
|
416
452
|
try {
|
|
417
453
|
const devices = await this.getDevicesList();
|
|
454
|
+
if (!this.isSessionOpen(state))
|
|
455
|
+
return;
|
|
418
456
|
if (this.currentDeviceId && this.isProjectionBlocked(this.currentDeviceId)) {
|
|
419
457
|
this.currentDeviceId = null;
|
|
420
458
|
}
|
|
459
|
+
if (!this.currentDeviceId) {
|
|
460
|
+
this.currentDeviceId = this.selectAvailableDeviceId(devices);
|
|
461
|
+
}
|
|
421
462
|
wsSend(state.ws, 'devices-list', {
|
|
422
463
|
devices,
|
|
423
464
|
currentDeviceId: this.currentDeviceId,
|
|
@@ -451,6 +492,185 @@ export class ScrcpyServer {
|
|
|
451
492
|
state.videoWidth = 0;
|
|
452
493
|
state.videoHeight = 0;
|
|
453
494
|
}
|
|
495
|
+
async connectDeviceForSession(state, options = {}, emitStatus) {
|
|
496
|
+
const { ws } = state;
|
|
497
|
+
const safeOptions = options || {};
|
|
498
|
+
let connectLockKey = null;
|
|
499
|
+
try {
|
|
500
|
+
emitStatus('connecting-device');
|
|
501
|
+
// 重复 connect-device 时,先释放旧资源避免 scrcpy 进程残留。
|
|
502
|
+
if (state.scrcpyClient) {
|
|
503
|
+
await this.releaseSession(state);
|
|
504
|
+
}
|
|
505
|
+
if (!this.isSessionOpen(state))
|
|
506
|
+
return;
|
|
507
|
+
let targetDeviceId = resolveRequestedDeviceId(safeOptions, this.currentDeviceId);
|
|
508
|
+
if (!targetDeviceId) {
|
|
509
|
+
const devices = await this.getDevicesList();
|
|
510
|
+
if (!this.isSessionOpen(state))
|
|
511
|
+
return;
|
|
512
|
+
targetDeviceId = this.selectAvailableDeviceId(devices) || undefined;
|
|
513
|
+
}
|
|
514
|
+
if (!targetDeviceId) {
|
|
515
|
+
wsSend(ws, 'error', { message: 'No device found' });
|
|
516
|
+
return;
|
|
517
|
+
}
|
|
518
|
+
if (this.isProjectionBlocked(targetDeviceId)) {
|
|
519
|
+
logger.info(`Skip scrcpy connect for scheduled task device: deviceId=${targetDeviceId}`);
|
|
520
|
+
wsSend(ws, 'error', { message: this.getProjectionBlockedMessage(targetDeviceId) });
|
|
521
|
+
return;
|
|
522
|
+
}
|
|
523
|
+
const lockedBy = this.deviceConnectLocks.get(targetDeviceId);
|
|
524
|
+
if (lockedBy && lockedBy !== state.id) {
|
|
525
|
+
logger.info(`Skip duplicate scrcpy connect: deviceId=${targetDeviceId},owner=${lockedBy},client=${state.id}`);
|
|
526
|
+
wsSend(ws, 'error', {
|
|
527
|
+
message: `设备 ${targetDeviceId} 正在建立投屏连接,请稍后重试`,
|
|
528
|
+
});
|
|
529
|
+
return;
|
|
530
|
+
}
|
|
531
|
+
connectLockKey = targetDeviceId;
|
|
532
|
+
this.deviceConnectLocks.set(connectLockKey, state.id);
|
|
533
|
+
this.currentDeviceId = targetDeviceId;
|
|
534
|
+
state.deviceId = targetDeviceId;
|
|
535
|
+
state.adb = await this.getAdb(targetDeviceId);
|
|
536
|
+
if (!this.isSessionOpen(state)) {
|
|
537
|
+
await this.releaseSession(state);
|
|
538
|
+
return;
|
|
539
|
+
}
|
|
540
|
+
if (!state.adb) {
|
|
541
|
+
wsSend(ws, 'error', { message: 'No device found' });
|
|
542
|
+
return;
|
|
543
|
+
}
|
|
544
|
+
await this.wakeDeviceScreen(targetDeviceId);
|
|
545
|
+
if (!this.isSessionOpen(state)) {
|
|
546
|
+
await this.releaseSession(state);
|
|
547
|
+
return;
|
|
548
|
+
}
|
|
549
|
+
state.scrcpyClient = await this.startScrcpy(state.adb, safeOptions, emitStatus);
|
|
550
|
+
if (!this.isSessionOpen(state)) {
|
|
551
|
+
await this.releaseSession(state);
|
|
552
|
+
return;
|
|
553
|
+
}
|
|
554
|
+
logger.info(`Scrcpy started for device=${targetDeviceId},client=${state.id}`);
|
|
555
|
+
const videoStreamRaw = state.scrcpyClient?.videoStream;
|
|
556
|
+
if (!videoStreamRaw) {
|
|
557
|
+
wsSend(ws, 'error', {
|
|
558
|
+
message: 'Video stream not available in scrcpy client',
|
|
559
|
+
});
|
|
560
|
+
await this.releaseSession(state);
|
|
561
|
+
return;
|
|
562
|
+
}
|
|
563
|
+
emitStatus('waiting-for-video');
|
|
564
|
+
const videoStream = typeof videoStreamRaw?.then === 'function'
|
|
565
|
+
? await withTimeout(videoStreamRaw, this.config.videoStreamTimeoutMs, `Timed out waiting for scrcpy video stream metadata after ${Math.round(this.config.videoStreamTimeoutMs / 1000)}s`)
|
|
566
|
+
: videoStreamRaw;
|
|
567
|
+
if (!this.isSessionOpen(state)) {
|
|
568
|
+
await this.releaseSession(state);
|
|
569
|
+
return;
|
|
570
|
+
}
|
|
571
|
+
const metadata = videoStream.metadata;
|
|
572
|
+
// 严格校验:缺失元数据直接报错,避免兜底 H264/1080x1920 与真实流不匹配。
|
|
573
|
+
if (!metadata ||
|
|
574
|
+
!metadata.codec ||
|
|
575
|
+
!metadata.width ||
|
|
576
|
+
!metadata.height) {
|
|
577
|
+
const detail = JSON.stringify(metadata || {});
|
|
578
|
+
logger.error(`incomplete video metadata: ${detail}`);
|
|
579
|
+
wsSend(ws, 'error', {
|
|
580
|
+
message: `Incomplete video metadata from scrcpy: ${detail}`,
|
|
581
|
+
});
|
|
582
|
+
await this.releaseSession(state);
|
|
583
|
+
return;
|
|
584
|
+
}
|
|
585
|
+
// 唤醒屏幕,避免设备熄屏时 scrcpy 推黑画面。
|
|
586
|
+
const controller = state.scrcpyClient?.controller;
|
|
587
|
+
if (controller) {
|
|
588
|
+
try {
|
|
589
|
+
await controller.setScreenPowerMode?.(2);
|
|
590
|
+
}
|
|
591
|
+
catch (e) {
|
|
592
|
+
logger.warn(`setScreenPowerMode failed: ${e.message}`);
|
|
593
|
+
}
|
|
594
|
+
try {
|
|
595
|
+
await controller.backOrScreenOn?.(0);
|
|
596
|
+
}
|
|
597
|
+
catch (e) {
|
|
598
|
+
logger.warn(`backOrScreenOn failed: ${e.message}`);
|
|
599
|
+
}
|
|
600
|
+
}
|
|
601
|
+
if (!this.isSessionOpen(state)) {
|
|
602
|
+
await this.releaseSession(state);
|
|
603
|
+
return;
|
|
604
|
+
}
|
|
605
|
+
wsSend(ws, 'video-metadata', {
|
|
606
|
+
codec: metadata.codec,
|
|
607
|
+
width: metadata.width,
|
|
608
|
+
height: metadata.height,
|
|
609
|
+
});
|
|
610
|
+
state.videoWidth = metadata.width;
|
|
611
|
+
state.videoHeight = metadata.height;
|
|
612
|
+
const { stream } = videoStream;
|
|
613
|
+
const reader = stream.getReader();
|
|
614
|
+
state.streamReader = reader;
|
|
615
|
+
const processStream = async () => {
|
|
616
|
+
try {
|
|
617
|
+
while (true) {
|
|
618
|
+
const { done, value } = await reader.read();
|
|
619
|
+
if (done)
|
|
620
|
+
break;
|
|
621
|
+
const data = value.data;
|
|
622
|
+
const frameType = value.type || 'data';
|
|
623
|
+
const isKey = !!(value.keyframe ?? value.keyFrame) || isH264IdrFrame(data);
|
|
624
|
+
const isConfig = frameType === 'configuration';
|
|
625
|
+
if (!this.isSessionOpen(state))
|
|
626
|
+
break;
|
|
627
|
+
ws.send(buildVideoFrameBuffer(data, isKey, isConfig, Date.now()), { binary: true });
|
|
628
|
+
}
|
|
629
|
+
}
|
|
630
|
+
catch (error) {
|
|
631
|
+
const msg = error.message || '';
|
|
632
|
+
if (!/cancel|abort/i.test(msg)) {
|
|
633
|
+
logger.error(`Video stream error: ${msg}`);
|
|
634
|
+
if (this.isSessionOpen(state)) {
|
|
635
|
+
wsSend(ws, 'error', {
|
|
636
|
+
message: 'video stream processing error',
|
|
637
|
+
});
|
|
638
|
+
}
|
|
639
|
+
}
|
|
640
|
+
return;
|
|
641
|
+
}
|
|
642
|
+
finally {
|
|
643
|
+
if (state.streamReader === reader) {
|
|
644
|
+
state.streamReader = null;
|
|
645
|
+
}
|
|
646
|
+
}
|
|
647
|
+
if (this.isSessionOpen(state)) {
|
|
648
|
+
wsSend(ws, 'error', { message: 'video stream ended' });
|
|
649
|
+
}
|
|
650
|
+
await this.releaseSession(state);
|
|
651
|
+
};
|
|
652
|
+
void processStream();
|
|
653
|
+
if (state.scrcpyClient?.controller && this.isSessionOpen(state)) {
|
|
654
|
+
wsSend(ws, 'control-ready');
|
|
655
|
+
}
|
|
656
|
+
}
|
|
657
|
+
catch (error) {
|
|
658
|
+
const message = error?.message || 'Unknown error';
|
|
659
|
+
logger.error(`connect-device failed: ${message}`);
|
|
660
|
+
await this.releaseSession(state);
|
|
661
|
+
if (this.isSessionOpen(state)) {
|
|
662
|
+
wsSend(ws, 'error', {
|
|
663
|
+
message: `Failed to connect device: ${message}`,
|
|
664
|
+
});
|
|
665
|
+
}
|
|
666
|
+
}
|
|
667
|
+
finally {
|
|
668
|
+
if (connectLockKey &&
|
|
669
|
+
this.deviceConnectLocks.get(connectLockKey) === state.id) {
|
|
670
|
+
this.deviceConnectLocks.delete(connectLockKey);
|
|
671
|
+
}
|
|
672
|
+
}
|
|
673
|
+
}
|
|
454
674
|
attachSocketHandlers(state) {
|
|
455
675
|
const { ws } = state;
|
|
456
676
|
const emitStatus = (phase) => {
|
|
@@ -526,6 +746,12 @@ export class ScrcpyServer {
|
|
|
526
746
|
'get-devices': () => this.sendDevicesListTo(state),
|
|
527
747
|
'switch-device': async (deviceId) => {
|
|
528
748
|
try {
|
|
749
|
+
if (state.connectPromise) {
|
|
750
|
+
wsSend(ws, 'error', {
|
|
751
|
+
message: 'Device connection is already in progress',
|
|
752
|
+
});
|
|
753
|
+
return;
|
|
754
|
+
}
|
|
529
755
|
const id = typeof deviceId === 'string' ? deviceId : String(deviceId ?? '');
|
|
530
756
|
if (this.isProjectionBlocked(id)) {
|
|
531
757
|
wsSend(ws, 'error', { message: this.getProjectionBlockedMessage(id) });
|
|
@@ -547,134 +773,25 @@ export class ScrcpyServer {
|
|
|
547
773
|
});
|
|
548
774
|
}
|
|
549
775
|
},
|
|
550
|
-
'connect-device':
|
|
551
|
-
|
|
776
|
+
'connect-device': (options = {}) => {
|
|
777
|
+
if (state.connectPromise) {
|
|
552
778
|
emitStatus('connecting-device');
|
|
553
|
-
// 重复 connect-device 时,先释放旧资源避免 scrcpy 残留
|
|
554
|
-
if (state.scrcpyClient) {
|
|
555
|
-
await this.releaseSession(state);
|
|
556
|
-
}
|
|
557
|
-
const requestedDeviceId = resolveRequestedDeviceId(options || {}, this.currentDeviceId);
|
|
558
|
-
if (this.isProjectionBlocked(requestedDeviceId)) {
|
|
559
|
-
const blockedDeviceId = requestedDeviceId || '';
|
|
560
|
-
logger.info(`Skip scrcpy connect for scheduled task device: deviceId=${blockedDeviceId}`);
|
|
561
|
-
wsSend(ws, 'error', { message: this.getProjectionBlockedMessage(blockedDeviceId) });
|
|
562
|
-
return;
|
|
563
|
-
}
|
|
564
|
-
if (requestedDeviceId) {
|
|
565
|
-
this.currentDeviceId = requestedDeviceId;
|
|
566
|
-
state.deviceId = requestedDeviceId;
|
|
567
|
-
}
|
|
568
|
-
state.adb = await this.getAdb(requestedDeviceId);
|
|
569
|
-
if (!state.adb) {
|
|
570
|
-
wsSend(ws, 'error', { message: 'No device found' });
|
|
571
|
-
return;
|
|
572
|
-
}
|
|
573
|
-
await this.wakeDeviceScreen(this.currentDeviceId || requestedDeviceId);
|
|
574
|
-
state.scrcpyClient = await this.startScrcpy(state.adb, options || {}, emitStatus);
|
|
575
|
-
logger.info(`Scrcpy started for device=${this.currentDeviceId},client=${state.id}`);
|
|
576
|
-
const videoStreamRaw = state.scrcpyClient?.videoStream;
|
|
577
|
-
if (!videoStreamRaw) {
|
|
578
|
-
wsSend(ws, 'error', {
|
|
579
|
-
message: 'Video stream not available in scrcpy client',
|
|
580
|
-
});
|
|
581
|
-
await this.releaseSession(state);
|
|
582
|
-
return;
|
|
583
|
-
}
|
|
584
|
-
emitStatus('waiting-for-video');
|
|
585
|
-
const videoStream = typeof videoStreamRaw?.then === 'function'
|
|
586
|
-
? await withTimeout(videoStreamRaw, this.config.videoStreamTimeoutMs, `Timed out waiting for scrcpy video stream metadata after ${Math.round(this.config.videoStreamTimeoutMs / 1000)}s`)
|
|
587
|
-
: videoStreamRaw;
|
|
588
|
-
const metadata = videoStream.metadata;
|
|
589
|
-
// 严格校验:缺失元数据直接报错,避免兜底 H264/1080x1920 与真实流不匹配
|
|
590
|
-
if (!metadata ||
|
|
591
|
-
!metadata.codec ||
|
|
592
|
-
!metadata.width ||
|
|
593
|
-
!metadata.height) {
|
|
594
|
-
const detail = JSON.stringify(metadata || {});
|
|
595
|
-
logger.error(`incomplete video metadata: ${detail}`);
|
|
596
|
-
wsSend(ws, 'error', {
|
|
597
|
-
message: `Incomplete video metadata from scrcpy: ${detail}`,
|
|
598
|
-
});
|
|
599
|
-
await this.releaseSession(state);
|
|
600
|
-
return;
|
|
601
|
-
}
|
|
602
|
-
// 唤醒屏幕,避免设备熄屏时 scrcpy 推黑画面
|
|
603
|
-
const controller = state.scrcpyClient?.controller;
|
|
604
|
-
if (controller) {
|
|
605
|
-
try {
|
|
606
|
-
await controller.setScreenPowerMode?.(2);
|
|
607
|
-
}
|
|
608
|
-
catch (e) {
|
|
609
|
-
logger.warn(`setScreenPowerMode failed: ${e.message}`);
|
|
610
|
-
}
|
|
611
|
-
try {
|
|
612
|
-
await controller.backOrScreenOn?.(0);
|
|
613
|
-
}
|
|
614
|
-
catch (e) {
|
|
615
|
-
logger.warn(`backOrScreenOn failed: ${e.message}`);
|
|
616
|
-
}
|
|
617
|
-
}
|
|
618
|
-
wsSend(ws, 'video-metadata', {
|
|
619
|
-
codec: metadata.codec,
|
|
620
|
-
width: metadata.width,
|
|
621
|
-
height: metadata.height,
|
|
622
|
-
});
|
|
623
|
-
state.videoWidth = metadata.width;
|
|
624
|
-
state.videoHeight = metadata.height;
|
|
625
|
-
const { stream } = videoStream;
|
|
626
|
-
const reader = stream.getReader();
|
|
627
|
-
state.streamReader = reader;
|
|
628
|
-
const processStream = async () => {
|
|
629
|
-
try {
|
|
630
|
-
while (true) {
|
|
631
|
-
const { done, value } = await reader.read();
|
|
632
|
-
if (done)
|
|
633
|
-
break;
|
|
634
|
-
const data = value.data;
|
|
635
|
-
const frameType = value.type || 'data';
|
|
636
|
-
const isKey = !!(value.keyframe ?? value.keyFrame) || isH264IdrFrame(data);
|
|
637
|
-
const isConfig = frameType === 'configuration';
|
|
638
|
-
if (ws.readyState !== WebSocket.OPEN)
|
|
639
|
-
break;
|
|
640
|
-
ws.send(buildVideoFrameBuffer(data, isKey, isConfig, Date.now()), { binary: true });
|
|
641
|
-
}
|
|
642
|
-
}
|
|
643
|
-
catch (error) {
|
|
644
|
-
const msg = error.message || '';
|
|
645
|
-
if (!/cancel|abort/i.test(msg)) {
|
|
646
|
-
logger.error(`Video stream error: ${msg}`);
|
|
647
|
-
if (ws.readyState === WebSocket.OPEN) {
|
|
648
|
-
wsSend(ws, 'error', {
|
|
649
|
-
message: 'video stream processing error',
|
|
650
|
-
});
|
|
651
|
-
}
|
|
652
|
-
}
|
|
653
|
-
return;
|
|
654
|
-
}
|
|
655
|
-
finally {
|
|
656
|
-
if (state.streamReader === reader) {
|
|
657
|
-
state.streamReader = null;
|
|
658
|
-
}
|
|
659
|
-
}
|
|
660
|
-
if (ws.readyState === WebSocket.OPEN) {
|
|
661
|
-
wsSend(ws, 'error', { message: 'video stream ended' });
|
|
662
|
-
}
|
|
663
|
-
await this.releaseSession(state);
|
|
664
|
-
};
|
|
665
|
-
void processStream();
|
|
666
|
-
if (state.scrcpyClient?.controller) {
|
|
667
|
-
wsSend(ws, 'control-ready');
|
|
668
|
-
}
|
|
669
|
-
}
|
|
670
|
-
catch (error) {
|
|
671
|
-
const message = error?.message || 'Unknown error';
|
|
672
|
-
logger.error(`connect-device failed: ${message}`);
|
|
673
|
-
await this.releaseSession(state);
|
|
674
779
|
wsSend(ws, 'error', {
|
|
675
|
-
message:
|
|
780
|
+
message: 'Device connection is already in progress',
|
|
676
781
|
});
|
|
782
|
+
return;
|
|
677
783
|
}
|
|
784
|
+
const promise = this.connectDeviceForSession(state, options || {}, emitStatus);
|
|
785
|
+
state.connectPromise = promise;
|
|
786
|
+
void promise
|
|
787
|
+
.catch((error) => {
|
|
788
|
+
logger.error(`connect-device promise failed: ${error.message}`);
|
|
789
|
+
})
|
|
790
|
+
.finally(() => {
|
|
791
|
+
if (state.connectPromise === promise) {
|
|
792
|
+
state.connectPromise = null;
|
|
793
|
+
}
|
|
794
|
+
});
|
|
678
795
|
},
|
|
679
796
|
'control-touch': async (raw = {}) => {
|
|
680
797
|
try {
|
|
@@ -1076,6 +1193,7 @@ export class ScrcpyServer {
|
|
|
1076
1193
|
});
|
|
1077
1194
|
ws.on('close', async (code, reason) => {
|
|
1078
1195
|
logger.info(`Client disconnected: id=${state.id}, code=${code}, reason=${reason?.toString() || ''}`);
|
|
1196
|
+
state.closed = true;
|
|
1079
1197
|
this.sessions.delete(ws);
|
|
1080
1198
|
androidRecordingManager.cancel(state.id);
|
|
1081
1199
|
await this.releaseSession(state);
|
|
@@ -1092,7 +1210,7 @@ export class ScrcpyServer {
|
|
|
1092
1210
|
return;
|
|
1093
1211
|
this.devicePollInterval = setInterval(async () => {
|
|
1094
1212
|
try {
|
|
1095
|
-
const devices = await this.getDevicesList();
|
|
1213
|
+
const devices = await this.getDevicesList(true);
|
|
1096
1214
|
this.broadcastDevicesList(devices);
|
|
1097
1215
|
}
|
|
1098
1216
|
catch (error) {
|
|
@@ -1125,6 +1243,7 @@ export class ScrcpyServer {
|
|
|
1125
1243
|
this.devicePollInterval = null;
|
|
1126
1244
|
}
|
|
1127
1245
|
for (const sess of this.sessions.values()) {
|
|
1246
|
+
sess.closed = true;
|
|
1128
1247
|
await this.releaseSession(sess);
|
|
1129
1248
|
try {
|
|
1130
1249
|
sess.ws.close(1001, 'server shutting down');
|