Example usage for io.netty.handler.codec.http.websocketx CloseWebSocketFrame CloseWebSocketFrame

List of usage examples for io.netty.handler.codec.http.websocketx CloseWebSocketFrame CloseWebSocketFrame

Introduction

In this page you can find the example usage for io.netty.handler.codec.http.websocketx CloseWebSocketFrame CloseWebSocketFrame.

Prototype

public CloseWebSocketFrame(boolean finalFragment, int rsv, ByteBuf binaryData) 

Source Link

Document

Creates a new close frame

Usage

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);
}