Location
backend/src/handlers/registerBroadcaster.handler.ts — getRouterRtpCapabilities handler (~L104)
Current behavior
The handler resolves the room's owning node from Redis and, if it isn't this pod,
rejects the request instead of servicing it:
const redisRoom = await getRedisRoom(roomKey)
//TODO: Implementation for different pod connections
if (redisRoom.nodeId !== config.instanceId) {
logger.error('Different pod')
throw new ApiError(409, "Room belongs to another node")
}
Task
Replace the hard 409 "Room belongs to another node" rejection with real cross-pod
handling for the getRouterRtpCapabilities event — forward/proxy the signaling to the node that owns
the room (or redirect the client via sticky routing) so a socket that lands on a
non-owning pod can still complete this step.
Part of #65
Location
backend/src/handlers/registerBroadcaster.handler.ts—getRouterRtpCapabilitieshandler (~L104)Current behavior
The handler resolves the room's owning node from Redis and, if it isn't this pod,
rejects the request instead of servicing it:
Task
Replace the hard
409 "Room belongs to another node"rejection with real cross-podhandling for the
getRouterRtpCapabilitiesevent — forward/proxy the signaling to the node that ownsthe room (or redirect the client via sticky routing) so a socket that lands on a
non-owning pod can still complete this step.
Part of #65