aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Server.Implementations/Session/SessionManager.cs
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2016-08-20 14:38:27 -0400
committerLuke Pulverenti <luke.pulverenti@gmail.com>2016-08-20 14:38:27 -0400
commit234dcaf458b935a7941d5d8dc70496dd4df83ffc (patch)
treeb56fda623ff38e41211fa0553cf69e9fdde1a51b /MediaBrowser.Server.Implementations/Session/SessionManager.cs
parenta813083c9716e42913dabaf1fa88c0bac4caa27f (diff)
parent10906bcb8a9e5ac9ecca0ddf86c53da631326a2a (diff)
Merge branch 'dev' of https://github.com/MediaBrowser/Emby into dev
Diffstat (limited to 'MediaBrowser.Server.Implementations/Session/SessionManager.cs')
-rw-r--r--MediaBrowser.Server.Implementations/Session/SessionManager.cs21
1 files changed, 21 insertions, 0 deletions
diff --git a/MediaBrowser.Server.Implementations/Session/SessionManager.cs b/MediaBrowser.Server.Implementations/Session/SessionManager.cs
index f495e557a..9d07f2169 100644
--- a/MediaBrowser.Server.Implementations/Session/SessionManager.cs
+++ b/MediaBrowser.Server.Implementations/Session/SessionManager.cs
@@ -1869,6 +1869,27 @@ namespace MediaBrowser.Server.Implementations.Session
return GetSessionByAuthenticationToken(info, deviceId, remoteEndpoint, null);
}
+ public Task SendMessageToAdminSessions<T>(string name, T data, CancellationToken cancellationToken)
+ {
+ // TODO: How to identify admin sessions?
+ var sessions = Sessions.Where(i => i.IsActive && i.SessionController != null).ToList();
+
+ var tasks = sessions.Select(session => Task.Run(async () =>
+ {
+ try
+ {
+ await session.SessionController.SendMessage(name, data, cancellationToken).ConfigureAwait(false);
+ }
+ catch (Exception ex)
+ {
+ _logger.ErrorException("Error sending message", ex);
+ }
+
+ }, cancellationToken));
+
+ return Task.WhenAll(tasks);
+ }
+
public Task SendMessageToUserSessions<T>(string userId, string name, T data,
CancellationToken cancellationToken)
{