Skip to content
This repository was archived by the owner on Jun 21, 2023. It is now read-only.

Commit 3bc57f7

Browse files
authored
Fixed closing connection after unsuccessfull .connectionOpen attempt (#170)
1 parent 67b2cb4 commit 3bc57f7

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

services-gateway-netty/src/main/java/io/scalecube/services/gateway/ws/WebsocketGatewayAcceptor.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
import reactor.core.Disposable;
3535
import reactor.core.publisher.Flux;
3636
import reactor.core.publisher.Mono;
37+
import reactor.netty.DisposableChannel;
3738
import reactor.netty.http.server.HttpServerRequest;
3839
import reactor.netty.http.server.HttpServerResponse;
3940
import reactor.netty.http.websocket.WebsocketInbound;
@@ -75,7 +76,13 @@ public Publisher<Void> apply(HttpServerRequest httpRequest, HttpServerResponse h
7576

7677
return gatewayHandler
7778
.onConnectionOpen(sessionId, headers)
78-
.doOnError(ex -> httpResponse.status(toStatusCode(ex)).send().subscribe())
79+
.doOnError(
80+
ex ->
81+
httpResponse
82+
.status(toStatusCode(ex))
83+
.send()
84+
.doFinally(s -> httpResponse.withConnection(DisposableChannel::dispose))
85+
.subscribe())
7986
.then(
8087
Mono.defer(
8188
() ->

0 commit comments

Comments
 (0)