69 lines
2.2 KiB

  1. using JT1078.FMp4;
  2. using JT1078.Protocol.H264;
  3. using JT1078.SignalR.Test.Hubs;
  4. using JT1078.SignalR.Test.Services;
  5. using Microsoft.AspNetCore.Builder;
  6. using Microsoft.AspNetCore.Hosting;
  7. using Microsoft.AspNetCore.Mvc;
  8. using Microsoft.Extensions.Configuration;
  9. using Microsoft.Extensions.DependencyInjection;
  10. using Microsoft.Extensions.Hosting;
  11. using Microsoft.Extensions.Logging;
  12. using System;
  13. using System.Collections.Generic;
  14. using System.Linq;
  15. using System.Threading.Tasks;
  16. namespace JT1078.SignalR.Test
  17. {
  18. public class Startup
  19. {
  20. public Startup(IConfiguration configuration)
  21. {
  22. Configuration = configuration;
  23. }
  24. public IConfiguration Configuration { get; }
  25. // This method gets called by the runtime. Use this method to add services to the container.
  26. public void ConfigureServices(IServiceCollection services)
  27. {
  28. services.AddControllers();
  29. services.AddSignalR();
  30. services.AddSingleton<FMp4Encoder>();
  31. services.AddSingleton<H264Decoder>();
  32. services.AddSingleton<WsSession>();
  33. services.AddHostedService<ToWebSocketService>();
  34. services.AddCors(options => options.AddPolicy("CorsPolicy", builder =>
  35. {
  36. builder.AllowAnyMethod()
  37. .AllowAnyHeader()
  38. .AllowCredentials()
  39. .SetIsOriginAllowed(o => true);
  40. }));
  41. }
  42. // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
  43. public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
  44. {
  45. if (env.IsDevelopment())
  46. {
  47. app.UseDeveloperExceptionPage();
  48. }
  49. app.UseDefaultFiles();
  50. app.UseStaticFiles();
  51. app.UseRouting();
  52. app.UseCors("CorsPolicy");
  53. app.UseAuthorization();
  54. app.UseEndpoints(endpoints =>
  55. {
  56. endpoints.MapHub<FMp4Hub>("/FMp4Hub");
  57. });
  58. app.UseEndpoints(endpoints =>
  59. {
  60. endpoints.MapControllers();
  61. });
  62. }
  63. }
  64. }