From 50e66869872579d2cbd8337c4b114cf68dff814a Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Fri, 7 Oct 2016 11:08:13 -0400 Subject: update live stream management --- .../ServerManager/WebSocketConnection.cs | 63 +++------------------- 1 file changed, 6 insertions(+), 57 deletions(-) (limited to 'MediaBrowser.Server.Implementations/ServerManager/WebSocketConnection.cs') diff --git a/MediaBrowser.Server.Implementations/ServerManager/WebSocketConnection.cs b/MediaBrowser.Server.Implementations/ServerManager/WebSocketConnection.cs index af0699834..60b04cf82 100644 --- a/MediaBrowser.Server.Implementations/ServerManager/WebSocketConnection.cs +++ b/MediaBrowser.Server.Implementations/ServerManager/WebSocketConnection.cs @@ -20,7 +20,7 @@ namespace MediaBrowser.Server.Implementations.ServerManager public class WebSocketConnection : IWebSocketConnection { public event EventHandler Closed; - + /// /// The _socket /// @@ -36,11 +36,6 @@ namespace MediaBrowser.Server.Implementations.ServerManager /// private readonly CancellationTokenSource _cancellationTokenSource = new CancellationTokenSource(); - /// - /// The _send semaphore - /// - private readonly SemaphoreSlim _sendSemaphore = new SemaphoreSlim(1, 1); - /// /// The logger /// @@ -210,7 +205,7 @@ namespace MediaBrowser.Server.Implementations.ServerManager _logger.ErrorException("Error processing web socket message", ex); } } - + /// /// Sends a message asynchronously. /// @@ -237,7 +232,7 @@ namespace MediaBrowser.Server.Implementations.ServerManager /// The buffer. /// The cancellation token. /// Task. - public async Task SendAsync(byte[] buffer, CancellationToken cancellationToken) + public Task SendAsync(byte[] buffer, CancellationToken cancellationToken) { if (buffer == null) { @@ -246,33 +241,10 @@ namespace MediaBrowser.Server.Implementations.ServerManager cancellationToken.ThrowIfCancellationRequested(); - // Per msdn docs, attempting to send simultaneous messages will result in one failing. - // This should help us workaround that and ensure all messages get sent - await _sendSemaphore.WaitAsync(cancellationToken).ConfigureAwait(false); - - try - { - await _socket.SendAsync(buffer, true, cancellationToken); - } - catch (OperationCanceledException) - { - _logger.Info("WebSocket message to {0} was cancelled", RemoteEndPoint); - - throw; - } - catch (Exception ex) - { - _logger.ErrorException("Error sending WebSocket message {0}", ex, RemoteEndPoint); - - throw; - } - finally - { - _sendSemaphore.Release(); - } + return _socket.SendAsync(buffer, true, cancellationToken); } - public async Task SendAsync(string text, CancellationToken cancellationToken) + public Task SendAsync(string text, CancellationToken cancellationToken) { if (string.IsNullOrWhiteSpace(text)) { @@ -281,30 +253,7 @@ namespace MediaBrowser.Server.Implementations.ServerManager cancellationToken.ThrowIfCancellationRequested(); - // Per msdn docs, attempting to send simultaneous messages will result in one failing. - // This should help us workaround that and ensure all messages get sent - await _sendSemaphore.WaitAsync(cancellationToken).ConfigureAwait(false); - - try - { - await _socket.SendAsync(text, true, cancellationToken); - } - catch (OperationCanceledException) - { - _logger.Info("WebSocket message to {0} was cancelled", RemoteEndPoint); - - throw; - } - catch (Exception ex) - { - _logger.ErrorException("Error sending WebSocket message {0}", ex, RemoteEndPoint); - - throw; - } - finally - { - _sendSemaphore.Release(); - } + return _socket.SendAsync(text, true, cancellationToken); } /// -- cgit v1.2.3