using JiShe.CollectBus.Protocol.Contracts.Interfaces; using MassTransit; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using System; using System.Net.Sockets; using JiShe.CollectBus.Protocol.Contracts.Models; using TouchSocket.Sockets; namespace JiShe.CollectBus.RabbitMQ.Consumers { public class MessageReceivedConsumer : IConsumer { private readonly ILogger _logger; private readonly IServiceProvider _serviceProvider; public MessageReceivedConsumer(ILogger logger, IServiceProvider serviceProvider) { _logger = logger; _serviceProvider = serviceProvider; } public async Task Consume(ConsumeContext context) { const string protocolType = "StandardProtocol"; var protocolPlugin = _serviceProvider.GetKeyedService(protocolType); if (protocolPlugin == null) { _logger.LogError("协议不存在!"); } else { await protocolPlugin.AnalyzeAsync(context.Message); } } } }