void sendCloseNow(@Nullable CloseWebSocketFrame frame, ChannelFutureListener listener) { if (frame != null && !frame.isFinalFragment()) { channel().writeAndFlush(frame); return; } if (CLOSE_SENT.getAndSet(this, 1) == 0) { ChannelFuture f = channel().writeAndFlush( frame == null ? new CloseWebSocketFrame() : frame); f.addListener(listener); } else if (frame != null) { frame.release(); } }
void sendCloseNow(@Nullable CloseWebSocketFrame frame, ChannelFutureListener listener) { if (frame != null && !frame.isFinalFragment()) { channel().writeAndFlush(frame); return; } if (CLOSE_SENT.getAndSet(this, 1) == 0) { ChannelFuture f = channel().writeAndFlush( frame == null ? new CloseWebSocketFrame() : frame); f.addListener(listener); } else if (frame != null) { frame.release(); } }
Mono<Void> sendClose(CloseWebSocketFrame frame) { if (isWebsocket()) { HttpClientWSOperations ops = (HttpClientWSOperations) get(channel()); return ops.sendClose(frame); } frame.release(); return Mono.empty(); }
void sendCloseNow(CloseWebSocketFrame frame) { if (frame != null && !frame.isFinalFragment()) { channel().writeAndFlush(frame); return; } if (CLOSE_SENT.getAndSet(this, 1) == 0) { channel().writeAndFlush(frame == null ? new CloseWebSocketFrame() : frame) .addListener(ChannelFutureListener.CLOSE); } else if (frame != null) { frame.release(); } }
void sendCloseNow(CloseWebSocketFrame frame, ChannelFutureListener listener) { if (frame != null && !frame.isFinalFragment()) { channel().writeAndFlush(frame); return; } if (CLOSE_SENT.getAndSet(this, 1) == 0) { ChannelFuture f = channel().writeAndFlush( frame == null ? new CloseWebSocketFrame() : frame); if (listener != null) { f.addListener(listener); } } else if (frame != null) { frame.release(); } }
void sendCloseNow(@Nullable CloseWebSocketFrame frame) { if (frame != null && !frame.isFinalFragment()) { channel().writeAndFlush(frame); return; } if (CLOSE_SENT.getAndSet(this, 1) == 0) { channel().writeAndFlush(frame == null ? new CloseWebSocketFrame() : frame) .addListener(ChannelFutureListener.CLOSE); } else if (frame != null) { frame.release(); } }
Mono<Void> sendClose(CloseWebSocketFrame frame) { if (CLOSE_SENT.get(this) == 0) { onTerminate().subscribe(null, null, () -> ReactorNetty.safeRelease(frame)); return FutureMono.deferFuture(() -> { if (CLOSE_SENT.getAndSet(this, 1) == 0) { discard(); channel().pipeline().remove(NettyPipeline.ReactiveBridge); return channel().writeAndFlush(frame) .addListener(ChannelFutureListener.CLOSE); } frame.release(); return channel().newSucceededFuture(); }); } frame.release(); return Mono.empty(); }
void sendCloseNow(@Nullable CloseWebSocketFrame frame) { if (frame != null && !frame.isFinalFragment()) { channel().writeAndFlush(frame); return; } if (CLOSE_SENT.getAndSet(this, 1) == 0) { channel().writeAndFlush(frame == null ? new CloseWebSocketFrame() : frame) .addListener(ChannelFutureListener.CLOSE); } else if (frame != null) { frame.release(); } }
Mono<Void> sendClose(CloseWebSocketFrame frame) { if (CLOSE_SENT.get(this) == 0) { onTerminate().subscribe(null, null, () -> ReactorNetty.safeRelease(frame)); return FutureMono.deferFuture(() -> { if (CLOSE_SENT.getAndSet(this, 1) == 0) { discard(); channel().pipeline().remove(NettyPipeline.ReactiveBridge); return channel().writeAndFlush(frame) .addListener(ChannelFutureListener.CLOSE); } frame.release(); return channel().newSucceededFuture(); }); } frame.release(); return Mono.empty(); }
Mono<Void> sendClose(CloseWebSocketFrame frame) { if (CLOSE_SENT.get(this) == 0) { onTerminate().subscribe(null, null, () -> ReactorNetty.safeRelease(frame)); return FutureMono.deferFuture(() -> { if (CLOSE_SENT.getAndSet(this, 1) == 0) { discard(); channel().pipeline().remove(NettyPipeline.ReactiveBridge); return channel().writeAndFlush(frame) .addListener(ChannelFutureListener.CLOSE); } frame.release(); return channel().newSucceededFuture(); }); } frame.release(); return Mono.empty(); }
Mono<Void> sendClose(CloseWebSocketFrame frame) { if (CLOSE_SENT.get(this) == 0) { onTerminate().subscribe(null, null, () -> ReactorNetty.safeRelease(frame)); return FutureMono.deferFuture(() -> { if (CLOSE_SENT.getAndSet(this, 1) == 0) { discard(); channel().pipeline().remove(NettyPipeline.ReactiveBridge); return channel().writeAndFlush(frame) .addListener(ChannelFutureListener.CLOSE); } frame.release(); return channel().newSucceededFuture(); }); } frame.release(); return Mono.empty(); }
Mono<Void> sendClose(CloseWebSocketFrame frame) { if (CLOSE_SENT.get(this) == 0) { context().onClose(() -> ReactorNetty.safeRelease(frame)); return FutureMono.deferFuture(() -> { if (CLOSE_SENT.getAndSet(this, 1) == 0) { discard(); channel().pipeline().remove(NettyPipeline.ReactiveBridge); return channel().writeAndFlush(frame) .addListener(ChannelFutureListener.CLOSE); } frame.release(); return channel().newSucceededFuture(); }); } frame.release(); return Mono.empty(); }
Mono<Void> sendClose(CloseWebSocketFrame frame) { if (CLOSE_SENT.get(this) == 0) { context().onClose(() -> ReactorNetty.safeRelease(frame)); return FutureMono.deferFuture(() -> { if (CLOSE_SENT.getAndSet(this, 1) == 0) { discard(); channel().pipeline().remove(NettyPipeline.ReactiveBridge); return channel().writeAndFlush(frame) .addListener(ChannelFutureListener.CLOSE); } frame.release(); return channel().newSucceededFuture(); }); } frame.release(); return Mono.empty(); }
private void notifyCloseMessage(CloseWebSocketFrame closeWebSocketFrame) throws WebSocketConnectorException { String reasonText = closeWebSocketFrame.reasonText(); int statusCode = closeWebSocketFrame.statusCode(); if (statusCode == -1) { statusCode = 1005; } // closePromise == null means that WebSocketConnection has not yet initiated a connection closure. if (closePromise == null) { DefaultWebSocketMessage webSocketCloseMessage = new DefaultWebSocketCloseMessage(statusCode, reasonText); setupCommonProperties(webSocketCloseMessage); connectorFuture.notifyWebSocketListener((WebSocketCloseMessage) webSocketCloseMessage); } else { if (webSocketConnection.getCloseInitiatedStatusCode() != statusCode) { String errMsg = String.format( "Expected status code %d but found %d in echoed close frame from remote endpoint", webSocketConnection.getCloseInitiatedStatusCode(), statusCode); closePromise.setFailure(new IllegalStateException(errMsg)); return; } closePromise.setSuccess(); } closeWebSocketFrame.release(); }