diff options
| author | Greenback <jimcartlidge@yahoo.co.uk> | 2020-11-27 23:04:13 +0000 |
|---|---|---|
| committer | Greenback <jimcartlidge@yahoo.co.uk> | 2020-11-27 23:04:13 +0000 |
| commit | a59aeb12e07e7ee1f5453e94aefdc19a190f7d16 (patch) | |
| tree | 5b1fafe68e6d8207fdbdb29541e43a40f55494cc | |
| parent | c98c2ab955230358d00fbc64ebeddeec300e88d0 (diff) | |
Fixed SessionWebSocketListener.OnServerManagerWebSocketConnected.
| -rw-r--r-- | Jellyfin.Api/WebSocketListeners/ActivityLogWebSocketListener.cs | 2 | ||||
| -rw-r--r-- | Jellyfin.Server/CoreAppHost.cs | 3 | ||||
| -rw-r--r-- | Jellyfin.Server/Middleware/WebSocketHandlerMiddleware.cs | 13 |
3 files changed, 15 insertions, 3 deletions
diff --git a/Jellyfin.Api/WebSocketListeners/ActivityLogWebSocketListener.cs b/Jellyfin.Api/WebSocketListeners/ActivityLogWebSocketListener.cs index ce5465116..288e03fcf 100644 --- a/Jellyfin.Api/WebSocketListeners/ActivityLogWebSocketListener.cs +++ b/Jellyfin.Api/WebSocketListeners/ActivityLogWebSocketListener.cs @@ -58,7 +58,7 @@ namespace Jellyfin.Api.WebSocketListeners private void OnEntryCreated(object? sender, GenericEventArgs<ActivityLogEntry> e) { - SendData(true); + SendData(true).GetAwaiter().GetResult(); } } } diff --git a/Jellyfin.Server/CoreAppHost.cs b/Jellyfin.Server/CoreAppHost.cs index 78f596a5c..4b44537a5 100644 --- a/Jellyfin.Server/CoreAppHost.cs +++ b/Jellyfin.Server/CoreAppHost.cs @@ -82,10 +82,11 @@ namespace Jellyfin.Server ServiceCollection.AddSingleton<IUserManager, UserManager>(); ServiceCollection.AddSingleton<IDisplayPreferencesManager, DisplayPreferencesManager>(); - ServiceCollection.AddScoped<IWebSocketListener, SessionWebSocketListener>(); ServiceCollection.AddScoped<IWebSocketListener, ActivityLogWebSocketListener>(); ServiceCollection.AddScoped<IWebSocketListener, ScheduledTasksWebSocketListener>(); ServiceCollection.AddScoped<IWebSocketListener, SessionInfoWebSocketListener>(); + // This one has to be last as DI will select it for parameterization. + ServiceCollection.AddScoped<IWebSocketListener, SessionWebSocketListener>(); // TODO fix circular dependency on IWebSocketManager ServiceCollection.AddScoped(serviceProvider => new Lazy<IEnumerable<IWebSocketListener>>(serviceProvider.GetRequiredService<IEnumerable<IWebSocketListener>>)); diff --git a/Jellyfin.Server/Middleware/WebSocketHandlerMiddleware.cs b/Jellyfin.Server/Middleware/WebSocketHandlerMiddleware.cs index b7a5d2b34..53f32bebd 100644 --- a/Jellyfin.Server/Middleware/WebSocketHandlerMiddleware.cs +++ b/Jellyfin.Server/Middleware/WebSocketHandlerMiddleware.cs @@ -25,8 +25,19 @@ namespace Jellyfin.Server.Middleware /// </summary> /// <param name="httpContext">The current HTTP context.</param> /// <param name="webSocketManager">The WebSocket connection manager.</param> + /// <param name="websocketListener">Session manager instance.</param> /// <returns>The async task.</returns> - public async Task Invoke(HttpContext httpContext, IWebSocketManager webSocketManager) + public async Task Invoke( + HttpContext httpContext, + IWebSocketManager webSocketManager, +#pragma warning disable CA1801 +#pragma warning disable IDE0060 + // TODO: Workaround. see https://github.com/jellyfin/jellyfin/pull/3194 + // Do not remove this parameter. It uses DI to create a SessionWebSocketListener which is + // required for webSocketManager events. + IWebSocketListener websocketListener) +#pragma warning restore IDE0060 // Remove unused parameter +#pragma warning restore CA1801 { if (!httpContext.WebSockets.IsWebSocketRequest) { |
