Пример #1
0
        private void ClosePeer()
        {
            var peerRoom = PeerRoom;

            if (peerRoom != null)
            {
                foreach (var otherPeer in _meetingManager.GetPeersWithRoomId(peerRoom.Room.RoomId))
                {
                    if (otherPeer.PeerId == peerRoom.Peer.PeerId)
                    {
                        continue;
                    }

                    var client = _hubContext.Clients.User(otherPeer.PeerId.ToString());
                    client.ReceiveMessage(new MeetingMessage
                    {
                        Code         = 200,
                        InternalCode = "peerClosed",
                        Message      = "peerClosed",
                        Data         = new { PeerId = peerRoom.Peer.PeerId }
                    }).ContinueWithOnFaultedHandleLog(_logger);
                }

                // Iterate and close all mediasoup Transport associated to this Peer, so all
                // its Producers and Consumers will also be closed.
                foreach (var transport in peerRoom.Peer.Transports.Values)
                {
                    transport.Close();
                }
            }

            _meetingManager.ClosePeer(UserId);
        }
Пример #2
0
 public override Task OnDisconnectedAsync(Exception exception)
 {
     _meetingManager.ClosePeer(UserId);
     return(base.OnDisconnectedAsync(exception));
 }