AAAAAAAAAAAAAAAAAAA
All checks were successful
Create and publish a Docker image 🚀 / build-and-push-image (push) Successful in 2m25s
All checks were successful
Create and publish a Docker image 🚀 / build-and-push-image (push) Successful in 2m25s
This commit is contained in:
22
room.go
22
room.go
@@ -10,8 +10,7 @@ type Room struct {
|
||||
|
||||
func NewRoom() *Room {
|
||||
return &Room{
|
||||
peers: make(map[string]*Peer),
|
||||
tracks: make([]*Track, 0),
|
||||
peers: make(map[string]*Peer),
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,10 +19,8 @@ func (r *Room) AddPeer(p *Peer) {
|
||||
defer r.mu.Unlock()
|
||||
|
||||
r.peers[p.ID] = p
|
||||
|
||||
// 🔥 ВАЖНО: отдать новому peer ВСЕ существующие треки
|
||||
for _, track := range r.tracks {
|
||||
p.AddTrack(track)
|
||||
for _, t := range r.tracks {
|
||||
p.AddTrack(t)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -33,17 +30,14 @@ func (r *Room) RemovePeer(id string) {
|
||||
delete(r.peers, id)
|
||||
}
|
||||
|
||||
func (r *Room) AddTrack(from *Peer, track *Track) {
|
||||
func (r *Room) AddTrack(from *Peer, t *Track) {
|
||||
r.mu.Lock()
|
||||
defer r.mu.Unlock()
|
||||
|
||||
// сохраняем трек
|
||||
r.tracks = append(r.tracks, track)
|
||||
|
||||
// форвардим всем, кроме источника
|
||||
for _, peer := range r.peers {
|
||||
if peer.ID != from.ID {
|
||||
peer.AddTrack(track)
|
||||
r.tracks = append(r.tracks, t)
|
||||
for _, p := range r.peers {
|
||||
if p.ID != from.ID {
|
||||
p.AddTrack(t)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user