First of all thank you very much for this amazing library. I have done several projects with this and they worked perfectly. At the moment Im doing a simple group call application with around 12 users per sessions and with audio/video enabled. Now I need to do the horizontal scalling part.
For the scaling part what I planed is to create separate recvTransports for every audio/video consumer pair of a user in the room.
As an example , if there are 3 users named A, B, and C. When A starts publishing I create a sendTransport and produce audio and video using that transport. Then once A needs to consume from B user I create a recvTransport and use that transport to consume B user streams. Then when A user need to consume from C user again I create a recvTransort and use it to consume from C user. I thought to do this because when user A need to consume from the user C the server might be scalled horizontally and will not be able use the previous recvTransport created. So for a 12 user video call there will be 12 recvTransports for a user.
My problems are,
Is this a good practice?
Is this plan will impact user performance?
Is there any other proper way to address the horizontal scaling problem?