aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Server.Implementations/Session/SessionWebSocketListener.cs
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2013-05-11 12:41:50 -0400
committerLuke Pulverenti <luke.pulverenti@gmail.com>2013-05-11 12:41:50 -0400
commita1b45e98904c287b82d2f7d24eb4f4e2a248e211 (patch)
treeecb6baa9b12bc7cbbcf92d86ba2457de437cfef5 /MediaBrowser.Server.Implementations/Session/SessionWebSocketListener.cs
parent369107bab8f7ede2a3350249ee0cf83ba57cf81b (diff)
fixed web socket check-ins
Diffstat (limited to 'MediaBrowser.Server.Implementations/Session/SessionWebSocketListener.cs')
-rw-r--r--MediaBrowser.Server.Implementations/Session/SessionWebSocketListener.cs14
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)
{