我有一个将消息发布到RabbitMQ交换的控制台应用程序。使用MassTransit构建的订阅服务器是否可以使用此消息?
这是发布者代码:
public virtual void Send(LogEntryMessage message)
{
using (var connection = _factory.CreateConnection())
using (var channel = connection.CreateModel())
{
var props = channel.CreateBasicProperties();
props.CorrelationId = Guid.NewGuid().ToString();
var body = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(message));
channel.BasicPublish(exchange: _endpointConfiguration.Exchange, routingKey: _endpointConfiguration.RoutingKey, basicProperties: null,
body: body);
}
}这是订户代码:
IBusControl ConfigureBus()
{
return Bus.Factory.CreateUsingRabbitMq(cfg =>
{
var host = cfg.Host(new Uri("rabbitmq://localhost"), h =>
{
h.Username(username);
h.Password(password);
});
cfg.ReceiveEndpoint(host, "LogEntryQueue", e =>
{
e.Handler<LogEntryMessage>(context =>
Console.Out.WriteLineAsync($"Value was entered: {context.Message.MessageBody}"));
});
});
}这是消费者代码:
public class LogEntryMessageProcessor : IConsumer<LogEntryMessage>
{
public Task Consume(ConsumeContext<LogEntryMessage> context)
{
Console.Out.WriteLineAsync($"Value was entered:
{context.Message.Message.MessageBody}");
return Task.FromResult(0);
}
}https://stackoverflow.com/questions/44576293
复制相似问题