Добавление и обработка событий Peer_disconnected и Room_Delete
This commit is contained in:
@@ -144,6 +144,7 @@ func JoinWithOffer(roomID string, peerID string, offer webrtc.SessionDescription
|
||||
func DeleteRoom(roomID string) error {
|
||||
roomsMu.Lock()
|
||||
room, exists := rooms[roomID]
|
||||
server := room.Server
|
||||
if !exists {
|
||||
roomsMu.Unlock()
|
||||
return ErrRoomNotFound
|
||||
@@ -163,6 +164,8 @@ func DeleteRoom(roomID string) error {
|
||||
cleanupForwardingState(roomID, p.PeerID)
|
||||
}
|
||||
|
||||
OnRoomDelete(roomID, server)
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -218,7 +221,7 @@ func LeaveRoom(roomID string, peerID string) error {
|
||||
return DeleteRoom(roomID)
|
||||
}
|
||||
|
||||
// Опционально: renegotiation оставшимся peer после удаления треков/peer
|
||||
// renegotiation оставшимся peer после удаления треков/peer
|
||||
room.mu.RLock()
|
||||
rest := make([]Peer, len(room.Peers))
|
||||
copy(rest, room.Peers)
|
||||
|
||||
@@ -3,6 +3,7 @@ package sfu
|
||||
import (
|
||||
"errors"
|
||||
"g365sfu/logger"
|
||||
connection "g365sfu/socket/struct"
|
||||
"os"
|
||||
|
||||
"github.com/pion/interceptor"
|
||||
@@ -21,10 +22,10 @@ var OnServerOffer func(roomID string, peerID string, offer webrtc.SessionDescrip
|
||||
var OnLocalICECandidate func(roomID, peerID string, candidate webrtc.ICECandidateInit)
|
||||
|
||||
// Коллбек для обработки отключения пира (обрыв связи)
|
||||
var OnPeerDisconnected func(roomID, peerID string)
|
||||
var OnPeerDisconnected func(roomID, peerID string, server *connection.Connection)
|
||||
|
||||
// Коллбек для обработки удаления комнаты
|
||||
var OnRoomDelete func(roomID string)
|
||||
var OnRoomDelete func(roomID string, server *connection.Connection)
|
||||
|
||||
// Ошибки
|
||||
var (
|
||||
|
||||
Reference in New Issue
Block a user