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.
 
 
 

42 lines
1.8 KiB

  1. using Microsoft.Extensions.DependencyInjection;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Text;
  5. using JT808.Protocol;
  6. using Microsoft.Extensions.Configuration;
  7. using JT808.Gateway.Abstractions;
  8. using JT808.Gateway.Transmit.Configs;
  9. namespace JT808.Gateway.Transmit
  10. {
  11. public static class JT808TransmitExtensions
  12. {
  13. /// <summary>
  14. /// 转发服务(不同的消费者实例)
  15. /// </summary>
  16. /// <param name="jT808ClientBuilder"></param>
  17. /// <param name="configuration"></param>
  18. /// <returns></returns>
  19. public static IJT808ClientBuilder AddInPlugTransmit(this IJT808ClientBuilder jT808ClientBuilder,IConfiguration configuration)
  20. {
  21. jT808ClientBuilder.JT808Builder.Services.Configure<RemoteServerOptions>(configuration.GetSection("RemoteServerOptions"));
  22. jT808ClientBuilder.JT808Builder.Services.AddSingleton<JT808TransmitService>();
  23. jT808ClientBuilder.JT808Builder.Services.AddHostedService<JT808TransmitHostedService>();
  24. return jT808ClientBuilder;
  25. }
  26. /// <summary>
  27. /// 转发服务(消费者单实例)
  28. /// </summary>
  29. /// <param name="jT808GatewayBuilder"></param>
  30. /// <param name="configuration"></param>
  31. /// <returns></returns>
  32. public static IJT808GatewayBuilder AddInMemoryTransmit(this IJT808GatewayBuilder jT808GatewayBuilder, IConfiguration configuration)
  33. {
  34. jT808GatewayBuilder.JT808Builder.Services.Configure<RemoteServerOptions>(configuration.GetSection("RemoteServerOptions"));
  35. jT808GatewayBuilder.JT808Builder.Services.AddSingleton<JT808TransmitService>();
  36. jT808GatewayBuilder.JT808Builder.Services.AddHostedService<JT808TransmitInMemoryHostedService>();
  37. return jT808GatewayBuilder;
  38. }
  39. }
  40. }