RTCMultiConnection: Is this a bug? Why are "one-way"-participants not receive the media stream after reloading the "two-way" participants?

Describe the bug

C-participant stops resive the media stream (video/audio) from B-participant when B-participant rejoin to the room. The same happens if B-participant entered the room later than the C-participant.

Scenario

A - initiator who opens the room (connection.open) B1, B2, … - is "two-way" participants who communicate with the initiator and with each other in the room (connection.join) C1, C2, … - observers is "one-way" participatnts who see and breathe all that is happening in the room (connection.join)

  • A and B participant session is: {"audio": true, "video": true, "data": true}
  • C-participant session is: {"audio": true, "video": true, "data": true, "oneway": true}

A-initiator opens the room. B-participants are connected to the room. A and B see and hear each other. The latter are connected to the room C - “one-way” participants. C-participants could only see and hear that happens in the room, but other participants (A and B) do not hear or see them.

Testing

But C and B participant get connection.peers from each other.

C-participant went to room the last and receive video/audio streem from B-participant. The parameters from the B-participant:

console.log (connection.peers['fs4zz2m7b4']);

PeerInitiator {extra: {…}, userid: "qwerty", streams: Array(1), channels: Array(1), connectionDescription: {…}, …}

If the B-participant reloads the page and rejoin (or enters the room after the C-participant). There is no media stream. Parameters from B-participant:

console.log (connection.peers['bvfj8f4cqen']);

PeerInitiator {extra: {...}, userid: "fs4zz2m7b4", streams: Array (0), channels: Array (1), connectionDescription: {...}, ...}

Turns out that, if B-participant rejoin then field streams: Array (0). Therefore, there is no media stream.

If C-participants reload the page, the Array (1) will contain data stream again

I note that the A-initiator has no such problems.

How to fix the problem?

What should be done so that after the reconnection of the B-participant (two-way) they are seen and heard by the C-participants (“one-way”) automatically?

About this issue

  • Original URL
  • State: open
  • Created 6 years ago
  • Reactions: 1
  • Comments: 19 (4 by maintainers)

Commits related to this issue

Most upvoted comments

In this example, the initiator of the room (and the viewers) see all the broadcasters. But broadcasters don’t see each other.

Question to you, Muaz. How to make B-participants (broadcasters) communicate with each other, and not just with the initiator of the room?