From a1b45e98904c287b82d2f7d24eb4f4e2a248e211 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Sat, 11 May 2013 12:41:50 -0400 Subject: fixed web socket check-ins --- .../Session/SessionWebSocketListener.cs | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) (limited to 'MediaBrowser.Server.Implementations/Session/SessionWebSocketListener.cs') diff --git a/MediaBrowser.Server.Implementations/Session/SessionWebSocketListener.cs b/MediaBrowser.Server.Implementations/Session/SessionWebSocketListener.cs index ed1280ea9..19d177a94 100644 --- a/MediaBrowser.Server.Implementations/Session/SessionWebSocketListener.cs +++ b/MediaBrowser.Server.Implementations/Session/SessionWebSocketListener.cs @@ -7,6 +7,7 @@ using MediaBrowser.Model.Logging; using System; using System.Linq; using System.Threading.Tasks; +using MediaBrowser.Model.Net; namespace MediaBrowser.Server.Implementations.Session { @@ -66,12 +67,15 @@ namespace MediaBrowser.Server.Implementations.Session if (session != null) { - session.WebSocket = message.Connection; + var sockets = session.WebSockets.Where(i => i.State == WebSocketState.Open).ToList(); + sockets.Add(message.Connection); + + session.WebSockets = sockets; } } else if (string.Equals(message.MessageType, "Context", StringComparison.OrdinalIgnoreCase)) { - var session = _sessionManager.Sessions.FirstOrDefault(i => i.WebSocket == message.Connection); + var session = _sessionManager.Sessions.FirstOrDefault(i => i.WebSockets.Contains(message.Connection)); if (session != null) { @@ -84,7 +88,7 @@ namespace MediaBrowser.Server.Implementations.Session } else if (string.Equals(message.MessageType, "PlaybackStart", StringComparison.OrdinalIgnoreCase)) { - var session = _sessionManager.Sessions.FirstOrDefault(i => i.WebSocket == message.Connection); + var session = _sessionManager.Sessions.FirstOrDefault(i => i.WebSockets.Contains(message.Connection)); if (session != null && session.UserId.HasValue) { @@ -95,7 +99,7 @@ namespace MediaBrowser.Server.Implementations.Session } else if (string.Equals(message.MessageType, "PlaybackProgress", StringComparison.OrdinalIgnoreCase)) { - var session = _sessionManager.Sessions.FirstOrDefault(i => i.WebSocket == message.Connection); + var session = _sessionManager.Sessions.FirstOrDefault(i => i.WebSockets.Contains(message.Connection)); if (session != null && session.UserId.HasValue) { @@ -122,7 +126,7 @@ namespace MediaBrowser.Server.Implementations.Session } else if (string.Equals(message.MessageType, "PlaybackStopped", StringComparison.OrdinalIgnoreCase)) { - var session = _sessionManager.Sessions.FirstOrDefault(i => i.WebSocket == message.Connection); + var session = _sessionManager.Sessions.FirstOrDefault(i => i.WebSockets.Contains(message.Connection)); if (session != null && session.UserId.HasValue) { -- cgit v1.2.3