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.
 
 
 

36 lines
1.2 KiB

  1. using System.Threading.Tasks;
  2. using JT808.Protocol;
  3. using JT808.Protocol.Interfaces;
  4. using Microsoft.Extensions.Hosting;
  5. using System.Threading;
  6. using JT808.Gateway.PubSub;
  7. namespace JT808.Gateway.BusinessServices.SessionNotice
  8. {
  9. public class JT808SessionNoticeHostedService : IHostedService
  10. {
  11. private readonly JT808SessionNoticeService jT808DotNettySessionNoticeService;
  12. private readonly IJT808SessionConsumer jT808SessionConsumer;
  13. public JT808SessionNoticeHostedService(
  14. IJT808SessionConsumer jT808SessionConsumer,
  15. JT808SessionNoticeService jT808DotNettySessionNoticeService)
  16. {
  17. this.jT808DotNettySessionNoticeService = jT808DotNettySessionNoticeService;
  18. this.jT808SessionConsumer = jT808SessionConsumer;
  19. }
  20. public Task StartAsync(CancellationToken cancellationToken)
  21. {
  22. jT808SessionConsumer.Subscribe();
  23. jT808SessionConsumer.OnMessage(jT808DotNettySessionNoticeService.Processor);
  24. return Task.CompletedTask;
  25. }
  26. public Task StopAsync(CancellationToken cancellationToken)
  27. {
  28. jT808SessionConsumer.Unsubscribe();
  29. return Task.CompletedTask;
  30. }
  31. }
  32. }