diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2013-05-11 12:41:50 -0400 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2013-05-11 12:41:50 -0400 |
| commit | a1b45e98904c287b82d2f7d24eb4f4e2a248e211 (patch) | |
| tree | ecb6baa9b12bc7cbbcf92d86ba2457de437cfef5 /MediaBrowser.Server.Implementations/Session/SessionWebSocketListener.cs | |
| parent | 369107bab8f7ede2a3350249ee0cf83ba57cf81b (diff) | |
fixed web socket check-ins
Diffstat (limited to 'MediaBrowser.Server.Implementations/Session/SessionWebSocketListener.cs')
| -rw-r--r-- | MediaBrowser.Server.Implementations/Session/SessionWebSocketListener.cs | 14 |
1 files changed, 9 insertions, 5 deletions
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) { |
