feat: add cross-pod co-broadcaster transport creation
HA
2mo ago+396+396+012345678901234567890123456789-13-13-01234567890123456789
Closes: #67
Summary by cubic
Allows co-broadcasters whose Socket.IO connection lands on a different pod than the room owner to create their producer transport on the owning pod. Previously this case returned an error; now it creates the transport via a Redis command and responds with the transport details.
- Adds a
createBroadcasterTransportcommand that the owning pod handles by creating the Mediasoup transport and replying with its ID and connection parameters. - The requesting pod stores the pending request with a 5-second timeout and acks success or
TRANSPORT_CREATION_FAILEDbased on the response. - On success, the co-broadcaster's
transportIdsis updated in the database. - Adds documentation describing the full cross-pod flow for reference.
Summary by CodeRabbit
-
New Features
- Broadcasters can now establish transports successfully even when their connection is handled by a different server node than the room.
- Transport creation now completes asynchronously with success or failure acknowledgements.
-
Bug Fixes
- Removed the previous conflict error when a room belonged to another server node.
-
Documentation
- Added documentation describing the multi-node broadcaster transport workflow and request handling.