muaz-khan / RTCMultiConnection

RTCMultiConnection is a WebRTC JavaScript library for peer-to-peer applications (screen sharing, audio/video conferencing, file sharing, media streaming etc.)
https://muazkhan.com:9001/
MIT License
2.55k stars 1.38k forks source link

Scaleable Broadcast Issue #917

Open rayj00 opened 4 years ago

rayj00 commented 4 years ago

Disregard. Mistake. Number of viewers seems to be working ok. I am playing with the Scaleable Broadcast and noticed that if I originate a broadcast from my Android phone, it will also display the "Number of Broadcast Viewers: " but if I originate from my PC, it does not display the number of viewers? Any idea why?

I was going to post this in the Scaleable Broadcast github, but it is archived and read only?

Thanks,

Ray

rayj00 commented 4 years ago

Another issue with Scaleable Broadcasting. After broadcaster starts, next viewer is ok, 2nd viewer joins ok, but then has wrong roomid stored. He has userid stored instead of roomid, so 3rd viewer cannot join? I am using Chrome and new tab for each viewer. So roomid should be the same.

Anyone else see this?

rayj00 commented 4 years ago

Another issue with Scaleable Broadcasting. After broadcaster starts, next viewer is ok, 2nd viewer joins ok, but then has wrong roomid stored. He has userid stored instead of roomid, so 3rd viewer cannot join? I am using Chrome and new tab for each viewer. So roomid should be the same.

Anyone else see this?

To test, use Chrome browser: Start with new default broadcast. Random roomid assigned.
Open another tab and browse to page. Same roomid used. Join broadcast.
Open another tab and browse to page. Same roomid is used. Join broadcast.
Open another tab. Different roomid is used. Cannot join broadcast, but can start new broadcast. This viewer should have received same roomid as other viewers!!

How to fix???

xujingzhou commented 3 years ago

I tried replacing PC Chrome with 'replaceTrack' as well and it worked. E.g.

       connection.getSocket(function(socket) {
            socket.emit('can-relay-broadcast');

            connection.getAllParticipants().forEach(function(p) {
                if (p + '' != event.userid + '') {
                    connection.replaceTrack(event.stream, p);
                }
            });
        });