feat: add cross-pod co-broadcaster transport creation

HA
2mo ago
+396-13

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 createBroadcasterTransport command 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_FAILED based on the response.
  • On success, the co-broadcaster's transportIds is 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.