private ResonanceActionResult <WebRTCIceCandidateResponse> OnWebRTCCandidateRequest(WebRTCIceCandidateRequest request) { if (request.ChannelName != ChannelName) { return(null); } try { Logger.LogInformation("Ice candidate request received. Adding..."); _connection.addIceCandidate(new RTCIceCandidateInit() { candidate = request.Candidate.Candidate, sdpMid = request.Candidate.SdpMid, sdpMLineIndex = request.Candidate.SdpMLineIndex, usernameFragment = request.Candidate.UserNameFragment }); FlushIceCandidates(); return(new ResonanceActionResult <WebRTCIceCandidateResponse>(new WebRTCIceCandidateResponse() { ChannelName = ChannelName })); } catch (Exception ex) { Logger.LogError(ex, "Error adding ice {@candidate}.", request.Candidate); throw new Exception("Error adding ice candidate."); } }
private ResonanceActionResult <WebRTCIceCandidateResponse> OnWebRTCCandidateRequest(WebRTCIceCandidateRequest request) { try { ThreadFactory.StartNew(() => { _conductor.AddIceCandidate(request.Candidate.SdpMid, request.Candidate.SdpMLineIndex, request.Candidate.Candidate); }); return(new ResonanceActionResult <WebRTCIceCandidateResponse>(new WebRTCIceCandidateResponse())); } catch (Exception ex) { throw new Exception("Error adding ice candidate", ex); } }