From b6f3f0f28a5a3681175486c8c0a99de40deb040a Mon Sep 17 00:00:00 2001 From: tdejong-tools4ever <54626878+tdejong-tools4ever@users.noreply.github.com> Date: Thu, 12 Sep 2019 17:07:34 +0200 Subject: [PATCH] Modified WebSocketMiddleWare to close connection on premature close (#998) --- .../WebSockets/Middleware/WebSocketsProxyMiddleware.cs | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/Ocelot/WebSockets/Middleware/WebSocketsProxyMiddleware.cs b/src/Ocelot/WebSockets/Middleware/WebSocketsProxyMiddleware.cs index 6d56a489..bc567e36 100644 --- a/src/Ocelot/WebSockets/Middleware/WebSocketsProxyMiddleware.cs +++ b/src/Ocelot/WebSockets/Middleware/WebSocketsProxyMiddleware.cs @@ -47,6 +47,15 @@ namespace Ocelot.WebSockets.Middleware await destination.CloseOutputAsync(WebSocketCloseStatus.EndpointUnavailable, null, cancellationToken); return; } + catch (WebSocketException e) + { + if (e.WebSocketErrorCode == WebSocketError.ConnectionClosedPrematurely) + { + await destination.CloseOutputAsync(WebSocketCloseStatus.EndpointUnavailable, null, cancellationToken); + return; + } + throw; + } if (result.MessageType == WebSocketMessageType.Close) {