Как подключить (обратный вызов) приложение ASP.NET Core, например, обратный вызов Azure Service Bus OnMessage? - PullRequest
0 голосов
/ 11 июля 2019

Я пишу долговременную функцию сущности, которая должна вызывать обратный вызов клиента (базовое приложение asp.net), как это сделала бы служебная шина Azure (onMessageCallback)?

В данный момент клиент отправляет запрос с URL-адресом обратного вызова.

    public class ThrottlerClient : IThrottlerClient
    {
        private readonly ISecurityTokenFactory _securityTokenFactory;
        private readonly HttpClient _client;
        private string _completeHandlerUrl;
        private string _errorHandlerUrl;
        private string _receiveUrl;

        public ThrottlerClient(HttpClient client, ISecurityTokenFactory securityTokenFactory)
        {
            _client = client;
            _securityTokenFactory = securityTokenFactory;
            _receiveUrl = Environment.GetEnvironmentVariable("Throttler:ReceiveUrl");
            _completeHandlerUrl = Environment.GetEnvironmentVariable("Throttler:CompleteHandlerUrl");
            _errorHandlerUrl = Environment.GetEnvironmentVariable("Throttler:ErrorHandlerUrl");
        }
        public async Task<string> Send(ICommand command, string submittedByName, string partitionKey)
        {
            var throttledRequest = new ThrottledRequest(command, submittedByName, partitionKey)
            {
                CompleteHandlerUrl = _completeHandlerUrl,
                ErrorHandlerUrl = _errorHandlerUrl
            };

            var token = _securityTokenFactory.Create($"{nameof(ThrottlerClient)}");

            _client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", $"{token}");

            await _client.PostAsync(_receiveUrl, throttledRequest);

            return throttledRequest.CorrelationId;
        }

    }

В надежде улучшить эту реализацию.Хотите знать, если кто-нибудь знает, как это реализовано или может указать мне на некоторые документы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...