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 {