diff --git a/src/server.tsx b/src/server.tsx index 1e15ce557..c5d02b1a3 100644 --- a/src/server.tsx +++ b/src/server.tsx @@ -26,6 +26,7 @@ import net, {Socket} from 'net'; import {Responder, Payload, ReactiveSocket} from 'rsocket-types'; import GK from './fb-stubs/GK'; import {initJsEmulatorIPC} from './utils/js-client/serverUtils'; +import {buildClientId} from './utils/clientUtils'; type ClientInfo = { connection: FlipperClientConnection | null | undefined; @@ -334,7 +335,12 @@ class Server extends EventEmitter { query.device_id = csrId; query.app = appNameWithUpdateHint(query); - const id = `${query.app}#${query.os}#${query.device}#${csrId}`; + const id = buildClientId({ + app: query.app, + os: query.os, + device: query.device, + device_id: csrId, + }); console.debug(`Device connected: ${id}`, 'server'); const client = new Client(id, query, conn, this.logger, this.store); diff --git a/src/utils/clientUtils.tsx b/src/utils/clientUtils.tsx index 888a5db95..f4b4247d2 100644 --- a/src/utils/clientUtils.tsx +++ b/src/utils/clientUtils.tsx @@ -47,3 +47,12 @@ export function getCurrentAppName(client: string | undefined | null): string { return ''; } } + +export function buildClientId(clientInfo: { + app: string; + os: string; + device: string; + device_id: string; +}): string { + return `${clientInfo.app}#${clientInfo.os}#${clientInfo.device}#${clientInfo.device_id}`; +} diff --git a/src/utils/js-client/serverUtils.tsx b/src/utils/js-client/serverUtils.tsx index 7e5be32de..83eb2abe8 100644 --- a/src/utils/js-client/serverUtils.tsx +++ b/src/utils/js-client/serverUtils.tsx @@ -17,6 +17,7 @@ import {Logger} from 'src/fb-interfaces/Logger'; import {Payload, ConnectionStatus, ISubscriber} from 'rsocket-types'; import {Flowable, Single} from 'rsocket-flowable'; import Server from 'src/server'; +import {buildClientId} from '../clientUtils'; const connections: Map> = new Map(); @@ -59,7 +60,7 @@ export function initJsEmulatorIPC( device_id: jsDeviceId(windowId), sdk_version: 2, // hack to bybass callbacks in Client, will be fixed when JS Connection will be fully implemented }; - const clientId = `${query.app}#${query.os}#${query.device}#${query.device_id}`; + const clientId = buildClientId(query); const client = new Client( clientId,