diff options
| author | Luke <luke.pulverenti@gmail.com> | 2016-10-07 11:14:43 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2016-10-07 11:14:43 -0400 |
| commit | 50ff08310ea55338dcdaeabc936c024f5573599a (patch) | |
| tree | e911343b68d44033ada99c756b2b22842481c344 /MediaBrowser.Server.Implementations/ServerManager/WebSocketConnection.cs | |
| parent | a0897acd5c97bca60bfd20a72816e30e07f626f5 (diff) | |
| parent | c8d923da938f7704cd218e7a01b602195ba9c58b (diff) | |
Merge pull request #2213 from MediaBrowser/dev
Dev
Diffstat (limited to 'MediaBrowser.Server.Implementations/ServerManager/WebSocketConnection.cs')
| -rw-r--r-- | MediaBrowser.Server.Implementations/ServerManager/WebSocketConnection.cs | 63 |
1 files changed, 6 insertions, 57 deletions
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<EventArgs> Closed; - + /// <summary> /// The _socket /// </summary> @@ -37,11 +37,6 @@ namespace MediaBrowser.Server.Implementations.ServerManager private readonly CancellationTokenSource _cancellationTokenSource = new CancellationTokenSource(); /// <summary> - /// The _send semaphore - /// </summary> - private readonly SemaphoreSlim _sendSemaphore = new SemaphoreSlim(1, 1); - - /// <summary> /// The logger /// </summary> private readonly ILogger _logger; @@ -210,7 +205,7 @@ namespace MediaBrowser.Server.Implementations.ServerManager _logger.ErrorException("Error processing web socket message", ex); } } - + /// <summary> /// Sends a message asynchronously. /// </summary> @@ -237,7 +232,7 @@ namespace MediaBrowser.Server.Implementations.ServerManager /// <param name="buffer">The buffer.</param> /// <param name="cancellationToken">The cancellation token.</param> /// <returns>Task.</returns> - 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); } /// <summary> |
