From 80a3a64d8497c5f8002139481874206fd256063f Mon Sep 17 00:00:00 2001 From: Steve Korshakov Date: Mon, 1 Sep 2025 14:51:24 -0700 Subject: [PATCH] fix: fix broken rpc --- sources/app/api/socket.ts | 8 +++++++- sources/app/api/socket/rpcHandler.ts | 4 ++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/sources/app/api/socket.ts b/sources/app/api/socket.ts index 1d2fd3b..49a1132 100644 --- a/sources/app/api/socket.ts +++ b/sources/app/api/socket.ts @@ -33,6 +33,7 @@ export function startSocket(app: Fastify, eventRouter: EventRouter) { serveClient: false // Don't serve the client files }); + let rpcListeners = new Map>(); io.on("connection", async (socket) => { log({ module: 'websocket' }, `New connection attempt from socket: ${socket.id}`); const token = socket.handshake.auth.token as string; @@ -645,7 +646,12 @@ export function startSocket(app: Fastify, eventRouter: EventRouter) { }); // Handlers - rpcHandler(userId, socket, eventRouter); + let userRpcListeners = rpcListeners.get(userId); + if (!userRpcListeners) { + userRpcListeners = new Map(); + rpcListeners.set(userId, userRpcListeners); + } + rpcHandler(userId, socket, eventRouter, userRpcListeners); usageHandler(userId, socket, eventRouter); pingHandler(socket); diff --git a/sources/app/api/socket/rpcHandler.ts b/sources/app/api/socket/rpcHandler.ts index d7a38e4..0523082 100644 --- a/sources/app/api/socket/rpcHandler.ts +++ b/sources/app/api/socket/rpcHandler.ts @@ -2,8 +2,8 @@ import { EventRouter } from "@/modules/eventRouter"; import { log } from "@/utils/log"; import { Socket } from "socket.io"; -export function rpcHandler(userId: string, socket: Socket, eventRouter: EventRouter) { - const rpcListeners = new Map(); +export function rpcHandler(userId: string, socket: Socket, eventRouter: EventRouter, rpcListeners: Map) { + // RPC register - Register this socket as a listener for an RPC method socket.on('rpc-register', async (data: any) => { try {