選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。
 
 
 

39 行
1.2 KiB

  1. using System.Threading.Tasks;
  2. using Microsoft.Extensions.Hosting;
  3. using System.Threading;
  4. using JT808.Protocol.Extensions;
  5. using JT808.Gateway.Abstractions;
  6. namespace JT808.Gateway.Traffic
  7. {
  8. public class JT808TrafficServiceHostedService : IHostedService
  9. {
  10. private readonly IJT808MsgConsumer jT808MsgConsumer;
  11. private readonly JT808TrafficService jT808TrafficService;
  12. public JT808TrafficServiceHostedService(
  13. JT808TrafficService jT808TrafficService,
  14. IJT808MsgConsumer jT808MsgConsumer)
  15. {
  16. this.jT808MsgConsumer = jT808MsgConsumer;
  17. this.jT808TrafficService = jT808TrafficService;
  18. }
  19. public Task StartAsync(CancellationToken cancellationToken)
  20. {
  21. jT808MsgConsumer.Subscribe();
  22. jT808MsgConsumer.OnMessage((item)=> {
  23. string str = item.Data.ToHexString();
  24. jT808TrafficService.Processor(item.TerminalNo, item.Data.Length);
  25. });
  26. return Task.CompletedTask;
  27. }
  28. public Task StopAsync(CancellationToken cancellationToken)
  29. {
  30. jT808MsgConsumer.Unsubscribe();
  31. return Task.CompletedTask;
  32. }
  33. }
  34. }