public async Task CreateCommunicationClient()

in Application/UI/Blazor/ImageRecognition/CommunicationClientFactory.cs [36:57]


        public async Task<ICommunicationClient> CreateCommunicationClient(CancellationToken token)
        {
            var authState = await _authenticationStateProvider.GetAuthenticationStateAsync();
            var user = authState.User;
            if (!user.Identity.IsAuthenticated)
                throw new Exception();

            var userId = _cognitoUserManager.GetUserId(user);
            if (string.IsNullOrEmpty(userId))
                throw new Exception();

            var cognitoUser = await _cognitoUserManager.FindByIdAsync(userId);
            if (string.IsNullOrEmpty(cognitoUser?.SessionTokens.IdToken))
                throw new Exception();


            var cws = new ClientWebSocket();
            cws.Options.SetRequestHeader("Authorization", cognitoUser.SessionTokens.IdToken);
            await cws.ConnectAsync(new Uri(_appOptions.ImageRecognitionWebSocketAPI), token);

            return new CommunicationClient(cws);
        }