diff options
| author | Bond-009 <bond.009@outlook.com> | 2019-12-27 15:56:20 +0100 |
|---|---|---|
| committer | Bond_009 <bond.009@outlook.com> | 2020-01-13 20:06:08 +0100 |
| commit | f89e18ea26aa2f4eec19f52ee6dfd28b53cee5df (patch) | |
| tree | ddb0b504eac6a507847cc22d3727a0e48fa27bde | |
| parent | bdd823d22ff4d20e8aa2e5d8bf34e0faaad285ba (diff) | |
Improve error handling
| -rw-r--r-- | Emby.Server.Implementations/HttpServer/WebSocketConnection.cs | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/Emby.Server.Implementations/HttpServer/WebSocketConnection.cs b/Emby.Server.Implementations/HttpServer/WebSocketConnection.cs index 7c0d82d89..0b376bf3c 100644 --- a/Emby.Server.Implementations/HttpServer/WebSocketConnection.cs +++ b/Emby.Server.Implementations/HttpServer/WebSocketConnection.cs @@ -149,14 +149,21 @@ namespace Emby.Server.Implementations.HttpServer { await ProcessInternal(pipe.Reader).ConfigureAwait(false); } - } while (_socket.State == WebSocketState.Open && receiveresult.MessageType != WebSocketMessageType.Close); + } while ( + (_socket.State == WebSocketState.Open || _socket.State == WebSocketState.Connecting) + && receiveresult.MessageType != WebSocketMessageType.Close); Closed?.Invoke(this, EventArgs.Empty); - await _socket.CloseAsync( - WebSocketCloseStatus.NormalClosure, - string.Empty, - cancellationToken).ConfigureAwait(false); + if (_socket.State == WebSocketState.Open + || _socket.State == WebSocketState.CloseReceived + || _socket.State == WebSocketState.CloseSent) + { + await _socket.CloseAsync( + WebSocketCloseStatus.NormalClosure, + string.Empty, + cancellationToken).ConfigureAwait(false); + } } private async Task ProcessInternal(PipeReader reader) |
