Files
meet-api/room.go
Smile Rex 87c137111a
All checks were successful
Create and publish a Docker image 🚀 / build-and-push-image (push) Successful in 2m25s
AAAAAAAAAAAAAAAAAAA
2026-01-26 20:06:52 +03:00

44 lines
619 B
Go

package main
import "sync"
type Room struct {
mu sync.Mutex
peers map[string]*Peer
tracks []*Track
}
func NewRoom() *Room {
return &Room{
peers: make(map[string]*Peer),
}
}
func (r *Room) AddPeer(p *Peer) {
r.mu.Lock()
defer r.mu.Unlock()
r.peers[p.ID] = p
for _, t := range r.tracks {
p.AddTrack(t)
}
}
func (r *Room) RemovePeer(id string) {
r.mu.Lock()
defer r.mu.Unlock()
delete(r.peers, id)
}
func (r *Room) AddTrack(from *Peer, t *Track) {
r.mu.Lock()
defer r.mu.Unlock()
r.tracks = append(r.tracks, t)
for _, p := range r.peers {
if p.ID != from.ID {
p.AddTrack(t)
}
}
}