Beispiel #1
0
        public override Task OnDisconnectedAsync(Exception exception)
        {
            string   clientConnectionId = Context.ConnectionId;
            Producer producerToRemove   = producerHubRepository.GetProducerById(clientConnectionId);

            // When the producer with the same name try to connect more than one.
            if (producerToRemove != null)
            {
                storageHubService.DisconnectProducerAsync(producerToRemove);
                producerHubRepository.RemoveProducer(clientConnectionId);

                logger.LogInformation($"Producer '{producerToRemove.ProducerName}' at {producerToRemove.Tenant}/{producerToRemove.Product}/{producerToRemove.Component}/{producerToRemove.Topic} is disconnected");

                Clients.Caller.ProducerDisconnected(new Model.Producers.Events.ProducerDisconnectedDetails()
                {
                    Id = producerToRemove.Id
                });
            }
            return(base.OnDisconnectedAsync(exception));
        }
Beispiel #2
0
        public ActionResult <Producer> GetProducers(string connectionId)
        {
            var isFromCli = HttpContext.Request.Headers["x-called-by"].ToString();

            if (isFromCli != "")
            {
                _logger.LogInformation($"{isFromCli} GET '{HttpContext.Request.Path}' is called");
            }
            else
            {
                _logger.LogInformation($"GET '{HttpContext.Request.Path}' is called");
            }


            var consumer = _producerHubRepository.GetProducerById(connectionId);

            if (consumer == null)
            {
                return(NotFound());
            }

            return(Ok(consumer));
        }