25개 이상의 토픽을 선택하실 수 없습니다. Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

35 lines
1.1 KiB

  1. using System.Threading.Tasks;
  2. using Microsoft.Extensions.Hosting;
  3. using System.Threading;
  4. using JT808.Gateway.Abstractions;
  5. namespace JT808.Gateway.ReplyMessage
  6. {
  7. public class JT808ReplyMessageHostedService : IHostedService
  8. {
  9. private readonly IJT808MsgConsumer jT808MsgConsumer;
  10. private readonly JT808ReplyMessageHandler jT808ReplyMessageHandler;
  11. public JT808ReplyMessageHostedService(
  12. JT808ReplyMessageHandler jT808ReplyMessageHandler,
  13. IJT808MsgConsumer jT808MsgConsumer)
  14. {
  15. this.jT808MsgConsumer = jT808MsgConsumer;
  16. this.jT808ReplyMessageHandler = jT808ReplyMessageHandler;
  17. }
  18. public Task StartAsync(CancellationToken cancellationToken)
  19. {
  20. jT808MsgConsumer.Subscribe();
  21. jT808MsgConsumer.OnMessage(jT808ReplyMessageHandler.Processor);
  22. return Task.CompletedTask;
  23. }
  24. public Task StopAsync(CancellationToken cancellationToken)
  25. {
  26. jT808MsgConsumer.Unsubscribe();
  27. return Task.CompletedTask;
  28. }
  29. }
  30. }