It seems that the demo-app.js wrote different code for different browser version. Could it use adapter.js to handle the compatibility issue of different browsers?
The webrtc-internal shows the client generates two PeerConnections. Is there any reason to use two PCs instead of one?
Since the client uses PCs, I expect the server also use PCs.
I wonder where is the server-side code for creating PCs and negotiation offer/answers.
Why? We have mediasoup-client that adapts to each different browser. Why would we need adapter.js?
Yes, to avoid the pain of managing SDPs with bidirectional m=sections.
No, mediasoup (server side) does not use SDPs but RTP parameters. It’s mediasoup-client who builds “remote SDPs” to conform to the WebRTC API of browsers.
BTW: You should read the mediasoup documentation instead of making random questions. Everything is explained in there.