aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Jellyfin.Api/WebSocketListeners/ActivityLogWebSocketListener.cs2
-rw-r--r--Jellyfin.Server/CoreAppHost.cs3
-rw-r--r--Jellyfin.Server/Middleware/WebSocketHandlerMiddleware.cs13
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)
{