diff options
| author | Claus Vium <clausvium@gmail.com> | 2019-02-27 23:22:55 +0100 |
|---|---|---|
| committer | Claus Vium <clausvium@gmail.com> | 2019-02-27 23:22:55 +0100 |
| commit | fb1de5a9213f7da98ed15a6975201d6bca3537d4 (patch) | |
| tree | 74ca93c5b068e148cfa67ad013d9db650b2ebb0d /Emby.Server.Implementations/Middleware/WebSocketMiddleware.cs | |
| parent | 71ed8409446774c395b339728e2436c3b30536d8 (diff) | |
Remove more cruft and add the beginnings of a socket middleware
Diffstat (limited to 'Emby.Server.Implementations/Middleware/WebSocketMiddleware.cs')
| -rw-r--r-- | Emby.Server.Implementations/Middleware/WebSocketMiddleware.cs | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/Emby.Server.Implementations/Middleware/WebSocketMiddleware.cs b/Emby.Server.Implementations/Middleware/WebSocketMiddleware.cs new file mode 100644 index 000000000..a1d0e77d6 --- /dev/null +++ b/Emby.Server.Implementations/Middleware/WebSocketMiddleware.cs @@ -0,0 +1,36 @@ +using System.Threading.Tasks; +using Microsoft.AspNetCore.Http; +using Microsoft.Extensions.Logging; +using WebSocketManager = Emby.Server.Implementations.WebSockets.WebSocketManager; + +namespace Emby.Server.Implementations.Middleware +{ + public class WebSocketMiddleware + { + private readonly RequestDelegate _next; + private readonly ILogger<WebSocketMiddleware> _logger; + private readonly WebSocketManager _webSocketManager; + + public WebSocketMiddleware(RequestDelegate next, ILogger<WebSocketMiddleware> logger, WebSocketManager webSocketManager) + { + _next = next; + _logger = logger; + _webSocketManager = webSocketManager; + } + + public async Task Invoke(HttpContext httpContext) + { + _logger.LogInformation("Handling request: " + httpContext.Request.Path); + + if (httpContext.WebSockets.IsWebSocketRequest) + { + var webSocketContext = await httpContext.WebSockets.AcceptWebSocketAsync(null).ConfigureAwait(false); + _webSocketManager.AddSocket(webSocketContext); + } + else + { + await _next.Invoke(httpContext); + } + } + } +} |
