Skip to content

Commit

Permalink
fix: Expose rpc server port (#30)
Browse files Browse the repository at this point in the history
* fix: Expose rpc server port

* fix: Open a new port for rpc
  • Loading branch information
kevinszuchet authored Jan 13, 2025
1 parent 517f813 commit 842c62d
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 8 deletions.
1 change: 1 addition & 0 deletions docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ services:
REDIS_HOST: 'redis'
ports:
- '3000:3000'
- '8085:8085'
depends_on:
- postgres
- redis
Expand Down
20 changes: 13 additions & 7 deletions src/adapters/rpcServer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,21 +29,23 @@ const FRIENDSHIPS_COUNT_PAGE_STREAM = 20
const INTERNAL_SERVER_ERROR = 'SERVER ERROR'

export default async function createRpcServerComponent(
components: Pick<AppComponents, 'logs' | 'db' | 'pubsub'>
components: Pick<AppComponents, 'logs' | 'db' | 'pubsub' | 'config' | 'server'>
): Promise<IRPCServerComponent> {
const { logs, db, pubsub } = components
const { logs, db, pubsub, config, server } = components

const SHARED_CONTEXT: Pick<RpcServerContext, 'subscribers'> = {
subscribers: {}
}

const server = createRpcServer<RpcServerContext>({
logger: logs.getLogger('rpcserver')
const rpcServer = createRpcServer<RpcServerContext>({
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 })
Expand Down Expand Up @@ -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']
Expand All @@ -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 })
}
}
}
2 changes: 1 addition & 1 deletion src/components.ts
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ export async function initComponents(): Promise<AppComponents> {

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,
Expand Down

0 comments on commit 842c62d

Please sign in to comment.