From 81481fda5aeb4b4b9745d082f10d643272807840 Mon Sep 17 00:00:00 2001 From: Denis Gladkiy Date: Mon, 6 Oct 2025 18:55:16 +0600 Subject: [PATCH] Refactoring: typing, comments-into-names changes. Signed-off-by: Denis Gladkiy --- packages/backrpc/src/__test__/backrpc.spec.ts | 6 +++--- packages/backrpc/src/server.ts | 20 +++++++++---------- packages/client/src/agent.ts | 2 +- 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/packages/backrpc/src/__test__/backrpc.spec.ts b/packages/backrpc/src/__test__/backrpc.spec.ts index 6686e3c761..ed24b0b1b9 100644 --- a/packages/backrpc/src/__test__/backrpc.spec.ts +++ b/packages/backrpc/src/__test__/backrpc.spec.ts @@ -976,9 +976,9 @@ describe('backrpc', () => { ) // Test that request limit can be configured - expect(server.requestsLimit).toBe(25) // Default value - server.requestsLimit = 10 // Set custom limit - expect(server.requestsLimit).toBe(10) + expect(server.requestsLimitPerClient).toBe(25) // Default value + server.requestsLimitPerClient = 10 // Set custom limit + expect(server.requestsLimitPerClient).toBe(10) const client = new BackRPCClient( 'client1' as ClientId, diff --git a/packages/backrpc/src/server.ts b/packages/backrpc/src/server.ts index cd7a06f1c7..aa0fd9de2f 100644 --- a/packages/backrpc/src/server.ts +++ b/packages/backrpc/src/server.ts @@ -40,7 +40,7 @@ interface RPCClientInfo { requestsTotal: number requestsTime: number helloCounter: number - aliveTimeout: number // Per-client timeout in seconds + perClientAliveTimeoutSeconds: number } export class BackRPCServer { @@ -59,8 +59,7 @@ export class BackRPCServer { private bound: Promise | undefined - // A limit of requests per one client. - requestsLimit: number = 25 + requestsLimitPerClient: number = 25 stopTick?: () => void @@ -68,7 +67,7 @@ export class BackRPCServer { private readonly handlers: BackRPCServerHandler, private readonly tickMgr: TickManager, readonly host: string = '*', - private readonly port: number = 0, + private readonly port: number | 'random' = 'random', private readonly options: zmq.SocketOptions = {} ) { this.router = new zmq.Router({ @@ -96,9 +95,9 @@ export class BackRPCServer { const timeSinceLastSeen = now - clientRecord.lastSeen // Use per-client timeout instead of global timeout - if (timeSinceLastSeen > clientRecord.aliveTimeout * 1000) { + if (timeSinceLastSeen > clientRecord.perClientAliveTimeoutSeconds * 1000) { console.warn( - `Client ${clientId} has been inactive for ${Math.round(timeSinceLastSeen / 1000)}s (timeout: ${clientRecord.aliveTimeout}s), marking as dead` + `Client ${clientId} has been inactive for ${Math.round(timeSinceLastSeen / 1000)}s (timeout: ${clientRecord.perClientAliveTimeoutSeconds}s), marking as dead` ) this.handleClose(clientRecord.id, clientId, true) } @@ -156,7 +155,8 @@ export class BackRPCServer { } private async start (): Promise { - this.bound = this.router.bind(`tcp://${this.host}:${this.port}`) + const port = this.port === 'random' ? 0 : this.port + this.bound = this.router.bind(`tcp://${this.host}:${port}`) await this.bound // Read messages from clients. @@ -200,10 +200,10 @@ export class BackRPCServer { requestsTime: 0, requestsTotal: 0, helloCounter: 0, - aliveTimeout: clientAliveTimeout + perClientAliveTimeoutSeconds: clientAliveTimeout } satisfies RPCClientInfo) clientInfo.helloCounter++ - clientInfo.aliveTimeout = clientAliveTimeout // Update timeout on reconnection + clientInfo.perClientAliveTimeoutSeconds = clientAliveTimeout // Update timeout on reconnection this.revClientMapping.set(clientIdText, clientInfo) void this.doSend([clientId, backrpcOperations.hello, this.uuid, '']) @@ -243,7 +243,7 @@ export class BackRPCServer { // We already had this request, so continue waiting for response. continue } - if (client.requests.size > this.requestsLimit) { + if (client.requests.size > this.requestsLimitPerClient) { // No Client, requests are not possible void this.doSend([clientId, backrpcOperations.retry, reqId, stringifyJSON(client.requests.size)]) continue diff --git a/packages/client/src/agent.ts b/packages/client/src/agent.ts index 31a4905180..c0965ec7c0 100644 --- a/packages/client/src/agent.ts +++ b/packages/client/src/agent.ts @@ -30,7 +30,7 @@ export class NetworkAgentServer implements BackRPCServerHandler { tickMgr: TickManager, readonly endpointHost: string, // An endpoint construction host, will be used to register host: string = '*', // A socket visibility - port: number = 3738 // If 0, port will be free random one. + port: number | 'random' = 3738 ) { this.rpcServer = new BackRPCServer(this, tickMgr, host, port) }