From 51e964dae394ae4a211482d562dbc28e79c00c3c Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Tue, 29 Jul 2014 23:31:35 -0400 Subject: support channels with dlna --- .../Session/WebSocketController.cs | 25 ++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'MediaBrowser.Server.Implementations/Session/WebSocketController.cs') diff --git a/MediaBrowser.Server.Implementations/Session/WebSocketController.cs b/MediaBrowser.Server.Implementations/Session/WebSocketController.cs index e1d77c268..2d5a30f3d 100644 --- a/MediaBrowser.Server.Implementations/Session/WebSocketController.cs +++ b/MediaBrowser.Server.Implementations/Session/WebSocketController.cs @@ -234,6 +234,8 @@ namespace MediaBrowser.Server.Implementations.Session private Task SendMessage(WebSocketMessage message, CancellationToken cancellationToken) { + if (SkipSending()) return Task.FromResult(true); + var socket = GetActiveSocket(); return socket.SendAsync(message, cancellationToken); @@ -241,6 +243,8 @@ namespace MediaBrowser.Server.Implementations.Session private Task SendMessages(WebSocketMessage message, CancellationToken cancellationToken) { + if (SkipSending()) return Task.FromResult(true); + var tasks = GetActiveSockets().Select(i => Task.Run(async () => { try @@ -257,6 +261,27 @@ namespace MediaBrowser.Server.Implementations.Session return Task.WhenAll(tasks); } + private bool SkipSending() + { + if (Session != null) + { + if (string.Equals(Session.Client, "mb-classic", StringComparison.OrdinalIgnoreCase)) + { + Version version; + + if (!string.IsNullOrWhiteSpace(Session.ApplicationVersion) && Version.TryParse(Session.ApplicationVersion, out version)) + { + if (version < new Version(3, 0, 196)) + { + _logger.Debug("Skipping web socket message to MBC version {0}.", version); + return true; + } + } + } + } + return false; + } + public void Dispose() { foreach (var socket in Sockets.ToList()) -- cgit v1.2.3