aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Server.Implementations/ServerManager/WebSocketConnection.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Server.Implementations/ServerManager/WebSocketConnection.cs')
-rw-r--r--MediaBrowser.Server.Implementations/ServerManager/WebSocketConnection.cs31
1 files changed, 30 insertions, 1 deletions
diff --git a/MediaBrowser.Server.Implementations/ServerManager/WebSocketConnection.cs b/MediaBrowser.Server.Implementations/ServerManager/WebSocketConnection.cs
index 0dd8cd0fd..3612b85b9 100644
--- a/MediaBrowser.Server.Implementations/ServerManager/WebSocketConnection.cs
+++ b/MediaBrowser.Server.Implementations/ServerManager/WebSocketConnection.cs
@@ -85,7 +85,8 @@ namespace MediaBrowser.Server.Implementations.ServerManager
_jsonSerializer = jsonSerializer;
_socket = socket;
- _socket.OnReceiveDelegate = OnReceiveInternal;
+ _socket.OnReceiveBytes = OnReceiveInternal;
+ _socket.OnReceive = OnReceiveInternal;
RemoteEndPoint = remoteEndPoint;
_logger = logger;
}
@@ -127,6 +128,34 @@ namespace MediaBrowser.Server.Implementations.ServerManager
}
}
+ private void OnReceiveInternal(string message)
+ {
+ LastActivityDate = DateTime.UtcNow;
+
+ if (OnReceive == null)
+ {
+ return;
+ }
+ try
+ {
+ var stub = (WebSocketMessage<object>)_jsonSerializer.DeserializeFromString(message, typeof(WebSocketMessage<object>));
+
+ var info = new WebSocketMessageInfo
+ {
+ MessageType = stub.MessageType,
+ Data = stub.Data == null ? null : stub.Data.ToString()
+ };
+
+ info.Connection = this;
+
+ OnReceive(info);
+ }
+ catch (Exception ex)
+ {
+ _logger.ErrorException("Error processing web socket message", ex);
+ }
+ }
+
/// <summary>
/// Sends a message asynchronously.
/// </summary>