Location
backend/src/handlers/registerBroadcaster.handler.ts — createBroadcasterTransport handler (~L161)
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 createBroadcasterTransport 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—createBroadcasterTransporthandler (~L161)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
createBroadcasterTransportevent — 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