You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

35 line
1.2 KiB

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