From 842c62db001fa28a3662de7f5b509932dffdf350 Mon Sep 17 00:00:00 2001 From: Kevin Szuchet <31735779+kevinszuchet@users.noreply.github.com> Date: Mon, 13 Jan 2025 11:25:22 -0300 Subject: [PATCH] fix: Expose rpc server port (#30) * fix: Expose rpc server port * fix: Open a new port for rpc --- docker-compose.yml | 1 + src/adapters/rpcServer.ts | 20 +++++++++++++------- src/components.ts | 2 +- 3 files changed, 15 insertions(+), 8 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 68c619e..aa3cd05 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -27,6 +27,7 @@ services: REDIS_HOST: 'redis' ports: - '3000:3000' + - '8085:8085' depends_on: - postgres - redis diff --git a/src/adapters/rpcServer.ts b/src/adapters/rpcServer.ts index 979ba74..ce56de8 100644 --- a/src/adapters/rpcServer.ts +++ b/src/adapters/rpcServer.ts @@ -29,21 +29,23 @@ const FRIENDSHIPS_COUNT_PAGE_STREAM = 20 const INTERNAL_SERVER_ERROR = 'SERVER ERROR' export default async function createRpcServerComponent( - components: Pick + components: Pick ): Promise { - const { logs, db, pubsub } = components + const { logs, db, pubsub, config, server } = components const SHARED_CONTEXT: Pick = { subscribers: {} } - const server = createRpcServer({ - logger: logs.getLogger('rpcserver') + const rpcServer = createRpcServer({ + logger: logs.getLogger('rpcServer') }) - const logger = logs.getLogger('rpcserver-handler') + const logger = logs.getLogger('rpcServer-handler') - server.setHandler(async function handler(port) { + const rpcPort = (await config.getNumber('RPC_SERVER_PORT')) || 8085 + + rpcServer.setHandler(async function handler(port) { registerService(port, SocialServiceDefinition, async () => ({ getFriends(_request, context) { logger.debug('getting friends for ', { address: context.address }) @@ -293,6 +295,10 @@ export default async function createRpcServerComponent( return { async start() { + server.app.listen(rpcPort, () => { + logger.info(`[RPC] RPC Server listening on port ${rpcPort}`) + }) + await pubsub.subscribeToFriendshipUpdates((message) => { try { const update = JSON.parse(message) as SubscriptionEventsEmitter['update'] @@ -311,7 +317,7 @@ export default async function createRpcServerComponent( delete SHARED_CONTEXT.subscribers[address] } }) - server.attachTransport(transport, { subscribers: SHARED_CONTEXT.subscribers, address }) + rpcServer.attachTransport(transport, { subscribers: SHARED_CONTEXT.subscribers, address }) } } } diff --git a/src/components.ts b/src/components.ts index 22244bb..c6713b9 100644 --- a/src/components.ts +++ b/src/components.ts @@ -49,7 +49,7 @@ export async function initComponents(): Promise { const redis = await createRedisComponent({ logs, config }) const pubsub = createPubSubComponent({ logs, redis }) - const rpcServer = await createRpcServerComponent({ logs, db, pubsub }) + const rpcServer = await createRpcServerComponent({ logs, db, pubsub, server, config }) return { config,