none
Problema para consumir dados usando PubSub Google RRS feed

  • Pergunta

  • Olá, bom dia.

    Eu estou fazendo uma aplicação simples para publicar e consumir mensagens utilizando PubSub do Google. Para publicar eu não tenho problemas e recebo o id da mensagem. Porém para consumir, eu recebo sempre o mesmo status WaitingForActivation e não consigo visualizar o id ou conteúdo da mensagem publicada.

    O bloco do método StartAsync, não escreve nada no console.

    Segue o código abaixo

     public class Program
        {
            static async Task Main(string[] args)
            {
                try
                {
    
                    var manager = new Manager("projectId");
    
                    var topicName = manager.CreateTopic();
    
                    var messageProducer = await manager.CreatePublisher(topicName);
                    Console.WriteLine($"Publisher message {messageProducer.ToString()} ");
    
                    await manager.CreateSubscriber(topicName);
                }
                catch (Exception exception)
                {
    
                }
                
            }
        }
    
     public async Task<object> CreateSubscriber(TopicName topic)
            {
                
                    SubscriberServiceApiClient subscriber = SubscriberServiceApiClient.Create();
    
                    SubscriptionName subscriptionName = new SubscriptionName(_projectId, "SubscriptionN");
    
                    SubscriberClient subscriberClient = await SubscriberClient.CreateAsync(subscriptionName);
    
                try
                {
                    var result = subscriberClient.StartAsync(
                       async (PubsubMessage message, CancellationToken cancel) =>
                       {
                           string text = Encoding.UTF8.GetString(message.Data.ToArray());
    
                           await Console.Out.WriteLineAsync($"Consumer {message.MessageId} => Message:{text}");
    
                           Console.WriteLine(message);
    
                           return await Task.FromResult(SubscriberClient.Reply.Ack);
    
                       });
    
                    await Task.Delay(3000);
                    await subscriberClient.StopAsync(CancellationToken.None);
    
                }
                catch (RpcException exception)
                {
                }
    
                return 0;
            }

    Obrigada.

    Abraços.



    quinta-feira, 21 de novembro de 2019 14:49

Respostas