瀏覽代碼

Improve error handling

Bond-009 5 年之前
父節點
當前提交
f89e18ea26
共有 1 個文件被更改,包括 12 次插入5 次删除
  1. 12 5
      Emby.Server.Implementations/HttpServer/WebSocketConnection.cs

+ 12 - 5
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)