List of usage examples for io.netty.handler.codec.http.websocketx CloseWebSocketFrame CloseWebSocketFrame
public CloseWebSocketFrame(boolean finalFragment, int rsv, ByteBuf binaryData)
From source file:io.advantageous.conekt.http.impl.ConektHttpHandler.java
License:Open Source License
@Override public void write(ChannelHandlerContext ctx, Object msg, ChannelPromise promise) throws Exception { if (msg instanceof WebSocketFrameInternal) { WebSocketFrameInternal frame = (WebSocketFrameInternal) msg; ByteBuf buf = frame.getBinaryData(); if (buf != Unpooled.EMPTY_BUFFER) { buf = safeBuffer(buf, ctx.alloc()); }/*from w w w . ja v a 2 s . c om*/ switch (frame.type()) { case BINARY: msg = new BinaryWebSocketFrame(frame.isFinal(), 0, buf); break; case TEXT: msg = new TextWebSocketFrame(frame.isFinal(), 0, buf); break; case CLOSE: msg = new CloseWebSocketFrame(true, 0, buf); break; case CONTINUATION: msg = new ContinuationWebSocketFrame(frame.isFinal(), 0, buf); break; case PONG: msg = new PongWebSocketFrame(buf); break; case PING: msg = new PingWebSocketFrame(buf); break; default: throw new IllegalStateException("Unsupported websocket msg " + msg); } } ctx.write(msg, promise); }
From source file:io.jsync.http.impl.AsyncHttpHandler.java
License:Open Source License
@Override public void write(ChannelHandlerContext ctx, Object msg, ChannelPromise promise) throws Exception { if (msg instanceof WebSocketFrameInternal) { WebSocketFrameInternal frame = (WebSocketFrameInternal) msg; ByteBuf buf = frame.getBinaryData(); if (buf != Unpooled.EMPTY_BUFFER) { buf = safeBuffer(buf, ctx.alloc()); }/*from w w w . j a va 2s . c om*/ switch (frame.type()) { case BINARY: msg = new BinaryWebSocketFrame(buf); break; case TEXT: msg = new TextWebSocketFrame(buf); break; case CLOSE: msg = new CloseWebSocketFrame(true, 0, buf); break; case CONTINUATION: msg = new ContinuationWebSocketFrame(buf); break; case PONG: msg = new PongWebSocketFrame(buf); break; case PING: msg = new PingWebSocketFrame(buf); break; default: throw new IllegalStateException("Unsupported websocket msg " + msg); } } ctx.write(msg, promise); }
From source file:io.vertx.core.http.impl.Http1xClientConnection.java
License:Open Source License
@Override public void closeWithPayload(ByteBuf byteBuf) { if (handshaker == null) { super.close(); } else {/*w w w . j ava 2 s. com*/ // make sure everything is flushed out on close endReadAndFlush(); // close the websocket connection by sending a close frame with specified payload. CloseWebSocketFrame closeFrame; if (byteBuf != null) { closeFrame = new CloseWebSocketFrame(true, 0, byteBuf); } else { closeFrame = new CloseWebSocketFrame(true, 0, 1000, null); } handshaker.close(chctx.channel(), closeFrame); } }
From source file:io.vertx.core.http.impl.Http1xConnectionBase.java
License:Open Source License
WebSocketFrame encodeFrame(WebSocketFrameImpl frame) { ByteBuf buf = frame.getBinaryData(); if (buf != Unpooled.EMPTY_BUFFER) { buf = safeBuffer(buf, chctx.alloc()); }// w w w . j a va 2s. c o m switch (frame.type()) { case BINARY: return new BinaryWebSocketFrame(frame.isFinal(), 0, buf); case TEXT: return new TextWebSocketFrame(frame.isFinal(), 0, buf); case CLOSE: return new CloseWebSocketFrame(true, 0, buf); case CONTINUATION: return new ContinuationWebSocketFrame(frame.isFinal(), 0, buf); case PONG: return new PongWebSocketFrame(buf); case PING: return new PingWebSocketFrame(buf); default: throw new IllegalStateException("Unsupported websocket msg " + frame); } }
From source file:io.vertx.core.http.impl.Http1xServerConnection.java
License:Open Source License
@Override public void closeWithPayload(ByteBuf byteBuf) { if (ws == null) { super.close(); } else {/*from w ww .j av a 2s . c o m*/ endReadAndFlush(); chctx.writeAndFlush(new CloseWebSocketFrame(true, 0, byteBuf)).addListener(ChannelFutureListener.CLOSE); } }
From source file:reactor.ipc.netty.http.client.HttpClientWSOperations.java
License:Open Source License
@Override @SuppressWarnings("unchecked") public void onInboundNext(ChannelHandlerContext ctx, Object msg) { if (msg instanceof FullHttpResponse) { channel().pipeline().remove(HttpObjectAggregator.class); FullHttpResponse response = (FullHttpResponse) msg; setNettyResponse(response);//from ww w . j av a2 s . c o m if (checkResponseCode(response)) { if (!handshaker.isHandshakeComplete()) { handshaker.finishHandshake(channel(), response); } parentContext().fireContextActive(this); handshakerResult.trySuccess(); } return; } if (msg instanceof PingWebSocketFrame) { channel().writeAndFlush(new PongWebSocketFrame(((PingWebSocketFrame) msg).content().retain())); ctx.read(); return; } if (msg instanceof CloseWebSocketFrame && ((CloseWebSocketFrame) msg).isFinalFragment()) { if (log.isDebugEnabled()) { log.debug("CloseWebSocketFrame detected. Closing Websocket"); } CloseWebSocketFrame close = (CloseWebSocketFrame) msg; sendClose(new CloseWebSocketFrame(true, close.rsv(), close.content().retain())); } else { super.onInboundNext(ctx, msg); } }
From source file:reactor.ipc.netty.http.server.HttpServerWSOperations.java
License:Open Source License
@Override public void onInboundNext(ChannelHandlerContext ctx, Object frame) { if (frame instanceof CloseWebSocketFrame && ((CloseWebSocketFrame) frame).isFinalFragment()) { if (log.isDebugEnabled()) { log.debug("CloseWebSocketFrame detected. Closing Websocket"); }/*from w w w .java2 s . c o m*/ CloseWebSocketFrame close = (CloseWebSocketFrame) frame; sendClose(new CloseWebSocketFrame(true, close.rsv(), close.content().retain()), f -> onHandlerTerminate()); return; } if (frame instanceof PingWebSocketFrame) { ctx.writeAndFlush(new PongWebSocketFrame(((PingWebSocketFrame) frame).content().retain())); ctx.read(); return; } super.onInboundNext(ctx, frame); }