add files and ci
All checks were successful
Create and publish a Docker image 🚀 / build-and-push-image (push) Successful in 1m34s

This commit is contained in:
Smile Rex
2026-01-26 15:18:05 +03:00
commit f85d36b183
8 changed files with 342 additions and 0 deletions

41
room.go Normal file
View File

@@ -0,0 +1,41 @@
package main
import "sync"
type Room struct {
mu sync.Mutex
peers map[string]*Peer
}
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
p.Room = r
}
func (r *Room) RemovePeer(id string) {
r.mu.Lock()
defer r.mu.Unlock()
delete(r.peers, id)
}
func (r *Room) ForwardTrack(from *Peer, track *Track) {
r.mu.Lock()
defer r.mu.Unlock()
for _, peer := range r.peers {
if peer.ID == from.ID {
continue
}
peer.AddTrack(track)
}
}