Когда вы создаете базовое действие, вы в основном создаете действие с двумя фрагментами. это означает, что базовая активность по умолчанию предоставляет два фрагмента, которые вы можете редактировать и использовать. в основном, это почти то же самое с нижней навигационной активностью. разница только в основной активности нет нижней навигации.

Код:

using System;
using System.Text;

using RabbitMQ.Client;
using RabbitMQ.Client.Events;


namespace CSharpPlayground
{
    public static class Program
    {
        public static void Main()
        {
            const string queueName = "hello";
            var factory = new ConnectionFactory { HostName = "localhost" };
            using var connection = factory.CreateConnection();
            using var queueDeclareChannel = connection.CreateModel();

            queueDeclareChannel.QueueDeclare(
                queue: queueName,
                durable: false,
                exclusive: false,
                autoDelete: false,
                arguments: null);

            using var consumerChannel = connection.CreateModel();
            var consumer = new AsyncEventingBasicConsumer(consumerChannel);
            consumer.Received += async (sender, eventArgs) =>
            {
                var receivedBody = eventArgs.Body;
                var receivedMessage = Encoding.UTF8.GetString(receivedBody.ToArray());
                Console.WriteLine($"[x] Received {receivedMessage}");
            };
            consumerChannel.BasicConsume(
                queue: queueName,
                autoAck: true,
                consumer: consumer);

            const string messageToSend = "Hello World!";
            var bodyToSend = new ReadOnlyMemory<byte>(Encoding.UTF8.GetBytes(messageToSend));
            var publishChannel = connection.CreateModel();
            var basicProperties = publishChannel.CreateBasicProperties();
            queueDeclareChannel.BasicPublish(
                exchange: "",
                routingKey: queueName,
                mandatory: false,
                basicProperties: basicProperties,
                body: bodyToSend);
            Console.WriteLine($"[x] Sent {messageToSend}");

            Console.ReadKey();
        }
    }
}
[x] Sent Hello World!
1
Natalie Perret 2 Июн 2020 в 06:39

1 ответ

Лучший ответ

У вас есть асинхронный потребитель, а это значит, что вам нужно сообщить своему ConnectionFactory, что вы получаете свои сообщения асинхронным способом.

DispatchConsumersAsync = true <- это допустимый java и означает то же самое в java, что и в C: разделите a на 2 и поместите остаток в t, сохраняя знак new ConnectionFactory {}. Таким образом: {{X2}} теперь равно 0, если {{X3}} было четным, и {{X4}}, если было положительным и нечетным, и {{X5}}, если было отрицательным и нечетным. Похоже, что в этом сценарии {{X6}} должен быть положительным, а это означает, что {{X7}} может быть здесь только {{X8}} или {{X9}}.

2
JohanP 2 Июн 2020 в 03:48