using System.Threading.Tasks; using JT808.DotNetty.Abstractions; using Microsoft.Extensions.Hosting; using System.Threading; namespace JT808.DotNetty.MsgLogging { public class JT808DotNettyMsgDownLoggingHostedService : IHostedService { private readonly IJT808MsgReplyConsumer jT808MsgReplyConsumer; private readonly IJT808MsgLogging jT808MsgLogging; public JT808DotNettyMsgDownLoggingHostedService( IJT808MsgLogging jT808MsgLogging, IJT808MsgReplyConsumer jT808MsgReplyConsumer) { this.jT808MsgReplyConsumer = jT808MsgReplyConsumer; this.jT808MsgLogging = jT808MsgLogging; } public Task StartAsync(CancellationToken cancellationToken) { jT808MsgReplyConsumer.Subscribe(); jT808MsgReplyConsumer.OnMessage(item=> { jT808MsgLogging.Processor(item, JT808MsgLoggingType.down); }); return Task.CompletedTask; } public Task StopAsync(CancellationToken cancellationToken) { jT808MsgReplyConsumer.Unsubscribe(); return Task.CompletedTask; } } }