From ba82dbb4c82b60e8d1f3f2346e2a89d9a9b052d1 Mon Sep 17 00:00:00 2001 From: Koushik Dutta Date: Wed, 14 Sep 2022 20:11:08 -0700 Subject: [PATCH] client: timing --- external/werift | 2 +- packages/client/package-lock.json | 4 +-- packages/client/package.json | 2 +- packages/client/src/index.ts | 58 +++++++++++++++++++------------ 4 files changed, 39 insertions(+), 27 deletions(-) diff --git a/external/werift b/external/werift index fc5cc9553..4b55033c0 160000 --- a/external/werift +++ b/external/werift @@ -1 +1 @@ -Subproject commit fc5cc9553fb8b3aed74ef31f36008653ccb11d20 +Subproject commit 4b55033c01ec1bf98043d3c35c5c238650779a85 diff --git a/packages/client/package-lock.json b/packages/client/package-lock.json index f7278fbdf..86d1229de 100644 --- a/packages/client/package-lock.json +++ b/packages/client/package-lock.json @@ -1,12 +1,12 @@ { "name": "@scrypted/client", - "version": "1.0.55", + "version": "1.0.57", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@scrypted/client", - "version": "1.0.55", + "version": "1.0.57", "license": "ISC", "dependencies": { "@scrypted/types": "^0.0.88", diff --git a/packages/client/package.json b/packages/client/package.json index aa5a93381..9956c4b84 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -1,6 +1,6 @@ { "name": "@scrypted/client", - "version": "1.0.55", + "version": "1.0.57", "description": "", "main": "dist/packages/client/src/index.js", "scripts": { diff --git a/packages/client/src/index.ts b/packages/client/src/index.ts index c339879a7..9bf650411 100644 --- a/packages/client/src/index.ts +++ b/packages/client/src/index.ts @@ -146,6 +146,7 @@ export async function redirectScryptedLogout(baseUrl?: string) { } export async function connectScryptedClient(options: ScryptedClientOptions): Promise { + const start = Date.now(); let { baseUrl, pluginId, clientName, username, password } = options; const extraHeaders: { [header: string]: string } = {}; @@ -158,6 +159,7 @@ export async function connectScryptedClient(options: ScryptedClientOptions): Pro extraHeaders['Authorization'] = loginResult.authorization; addresses = loginResult.addresses; scryptedCloud = loginResult.scryptedCloud; + console.log('login result', loginResult); } else { const loginCheck = await checkScryptedClientLogin({ @@ -167,6 +169,7 @@ export async function connectScryptedClient(options: ScryptedClientOptions): Pro throw new ScryptedClientLoginError(loginCheck); addresses = loginCheck.addresses; scryptedCloud = loginCheck.scryptedCloud; + console.log('login checked', loginCheck); } let socket: IOClientSocket; @@ -177,8 +180,6 @@ export async function connectScryptedClient(options: ScryptedClientOptions): Pro rejectUnauthorized: false, }; - const start = Date.now(); - const explicitBaseUrl = baseUrl || `${globalThis.location.protocol}//${globalThis.location.host}`; let connectionType: ScryptedClientConnectionType; @@ -359,7 +360,7 @@ export async function connectScryptedClient(options: ScryptedClientOptions): Pro }); if (isTimedOut()) { - console.log('peer connection established too late. closing.'); + console.log('peer connection established too late. closing.', Date.now() - start); ready.close(); } else { @@ -373,7 +374,7 @@ export async function connectScryptedClient(options: ScryptedClientOptions): Pro sockets = sockets.filter(s => s !== socket); } catch (e) { - console.error('peer to peer failed', e); + console.error('peer to peer failed', Date.now() - start, e); } sockets.forEach(s => { try { @@ -424,27 +425,38 @@ export async function connectScryptedClient(options: ScryptedClientOptions): Pro endpointManager, mediaManager, } = scrypted; - - const userStorage = await rpcPeer.getParam('userStorage'); - - const info = await systemManager.getComponent('info'); - let version = 'unknown'; - try { - version = await info.getVersion(); - } - catch (e) { - } + console.log('api attached', Date.now() - start); const { browserSignalingSession, connectionManagementId } = rpcPeer.params; - let rtcConnectionManagement: RTCConnectionManagement; - if (connectionManagementId) { - try { - const plugins = await systemManager.getComponent('plugins'); - rtcConnectionManagement = await plugins.getHostParam('@scrypted/webrtc', connectionManagementId); - } - catch (e) { - } - } + + const [userStorage, version, rtcConnectionManagement] = await Promise.all([ + rpcPeer.getParam('userStorage'), + (async () => { + const info = await systemManager.getComponent('info'); + let version = 'unknown'; + try { + version = await info.getVersion(); + } + catch (e) { + } + return version; + })(), + (async () => { + let rtcConnectionManagement: RTCConnectionManagement; + if (connectionManagementId) { + try { + const plugins = await systemManager.getComponent('plugins'); + rtcConnectionManagement = await plugins.getHostParam('@scrypted/webrtc', connectionManagementId); + return rtcConnectionManagement; + } + catch (e) { + } + } + })(), + ]); + + console.log('api initialized', Date.now() - start); + console.log('api queried, version:', version); const ret: ScryptedClientStatic = { pluginRemoteAPI: undefined,