using Confluent.Kafka; using JT808.Gateway.Configs.Kafka; using JT808.Gateway.PubSub; using Microsoft.Extensions.Options; using System; using System.Collections.Generic; using System.Text; using System.Threading.Tasks; namespace JT808.Gateway.Kafka { public class JT808MsgProducer : IJT808MsgProducer { public string TopicName { get; } private readonly IProducer producer; public JT808MsgProducer( IOptions producerConfigAccessor) { producer = new ProducerBuilder(producerConfigAccessor.Value).Build(); TopicName = producerConfigAccessor.Value.TopicName; } public void Dispose() { producer.Dispose(); } public async Task ProduceAsync(string terminalNo, byte[] data) { await producer.ProduceAsync(TopicName, new Message { Key = terminalNo, Value = data }); } } }