static async Task Main(string[] args) { var webhost = WebHost .CreateDefaultBuilder(args) .ConfigureServices(services => { services.AddWebRtcServer(); services.AddSingleton <IWebSocketSignalingServer, WebSocketSignalingServer>(); services.AddSingleton <IRtspClient, RtspClient>(); services.AddSingleton <IRtspPlayer, RtspPlayer>(); services.AddSingleton <IRtspProxyService, RtspProxyService>(); services.AddMvc(); }) .Configure(app => { app.UseDeveloperExceptionPage(); app.UseDefaultFiles(); app.UseStaticFiles(); app.UseWebSockets(); app.Use((ctx, next) => ConfigureWebSocketSignalingRoute(app, ctx, next)); }) .Build(); _webRtcServer = webhost.Services.GetService <IWebRtcServer>(); _ = Task.Run(_webRtcServer.RunAsync); await webhost.RunAsync(); }
public WebSocketSignalingServer( ILogger <WebSocketSignalingServer> logger, IWebRtcServer webRtcServer, IStunHandler stunHandler, IRtspProxyService rtspProxyService) { _logger = logger; _webRtcServer = webRtcServer; _stunHandler = stunHandler; _rtspProxyService = rtspProxyService; }
public RtspProxyService( IRtspPlayer rtspPlayer, IWebRtcServer webRtcServer, IWebRtcConnectionManager webRtcConnectionManager, ILogger <RtspProxyService> logger, IDtlsHandler dtlsServer, IStunUserProvider stunUserProvider) { _rtspPlayer = rtspPlayer; _webRtcServer = webRtcServer; _webRtcConnectionManager = webRtcConnectionManager; _logger = logger; _dtlsServer = dtlsServer; _stunUserProvider = stunUserProvider; _rtspPlayer.RtpPacketReceived += RtpPacketReceived; }