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); }
public override Task OnDisconnectedAsync(Exception exception) { _meetingManager.ClosePeer(UserId); return(base.OnDisconnectedAsync(exception)); }