private void ConnectBtn_Click(object sender, RoutedEventArgs e) { if (_ClientPeer == null) { _ClientPeer = new RtcClient(SocketUrl.Text); // Set RenderLocal callback _ClientPeer.SetRenderLocal((BGR24, w, h) => { RefreshLocalView(); }); // Set RenderRemote callback _ClientPeer.SetRenderRemote((BGR24, w, h) => { _RemoteView = new Bitmap((int)w, (int)h, (int)w * 3, System.Drawing.Imaging.PixelFormat.Format24bppRgb, BGR24); RefreshRemoteView(); }); } try { _ClientPeer.SocketConnect(); } catch (Exception ex) { Debug.WriteLine($"Error Socket Location:{SocketUrl.Text}"); _ClientPeer.Dispose(); _ClientPeer = null; } }
private void Auhenticate(RtcClient rtcClient) { var result = rtcClient.Auth.Identity().Result; if (result.StatusCode == HttpStatusCode.OK) { var header = GetHeader(result); // ReSharper disable once InvertIf if (header != null && header.Value.Equals("authrequired")) { var authResult = rtcClient.Auth.SecurityCheck( GetSetting(RtcSettings.Username), GetSetting(RtcSettings.Password)).Result; var authHeader = GetHeader(authResult); if (authHeader != null && authHeader.Value.Equals("authfailed")) { throw new UnauthorizedAccessException(); } } } else { throw new Exception("Incorrect Identity headers"); } }
private RtcClient GetClient() { var client = RtcClient.Connect( GetSetting(RtcSettings.Host), GetSetting(RtcSettings.Ccm), null); Auhenticate(client); return(client); }
private string GetProjectUuid(RtcClient client) { var project = GetProject(client); var lastIndex = project.Resource.LastIndexOf('/'); if (lastIndex <= 0 || lastIndex == project.Resource.Length) { throw new IncorrectProjectResourceException(project.Resource); } var projectUuid = project.Resource.Substring(lastIndex + 1); return(projectUuid); }
private Project GetProject(RtcClient client) { var projects = client.Projects.Get().Result; ValidateResponse(projects, HttpStatusCode.OK); if (projects.Data.Total == 0) { throw new UnauthorizedAccessException(); } var project = projects.Data.Entities.SingleOrDefault(_ => _.Title.StartsWith(GetSetting(RtcSettings.Project), StringComparison.Ordinal)); return(project); }