Example usage for io.netty.handler.codec.http.websocketx WebSocketClientHandshakerFactory newHandshaker

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

Introduction

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

Prototype

public static WebSocketClientHandshaker newHandshaker(URI webSocketURL, WebSocketVersion version,
        String subprotocol, boolean allowExtensions, HttpHeaders customHeaders, int maxFramePayloadLength,
        boolean performMasking, boolean allowMaskMismatch) 

Source Link

Document

Creates a new handshaker.

Usage

From source file:com.mobius.software.mqtt.performance.controller.net.WsClientBootstrap.java

License:Open Source License

@Override
public void init(SocketAddress serverAddress) throws InterruptedException {
    this.serverAddress = serverAddress;
    if (pipelineInitialized.compareAndSet(false, true)) {
        try {// ww  w. j  a v a  2s. co m
            InetSocketAddress remote = (InetSocketAddress) serverAddress;
            URI uri = new URI("ws://" + remote.getHostString() + ":" + remote.getPort() + "/ws");

            bootstrap.group(loopGroup);
            bootstrap.channel(NioSocketChannel.class);
            bootstrap.option(ChannelOption.TCP_NODELAY, true);
            bootstrap.option(ChannelOption.SO_KEEPALIVE, true);
            bootstrap.handler(new ChannelInitializer<SocketChannel>() {
                @Override
                protected void initChannel(SocketChannel socketChannel) throws Exception {
                    socketChannel.pipeline().addLast("http-codec", new HttpClientCodec());
                    socketChannel.pipeline().addLast("aggregator", new HttpObjectAggregator(65536));
                    socketChannel.pipeline().addLast("handler",
                            new WsClientHandler(
                                    WebSocketClientHandshakerFactory.newHandshaker(uri, WebSocketVersion.V13,
                                            null, false, EmptyHttpHeaders.INSTANCE, 1280000, true, true),
                                    clientListeners));
                    socketChannel.pipeline().addLast("compressor", WebSocketClientCompressionHandler.INSTANCE);
                    socketChannel.pipeline().addLast("exceptionHandler", exceptionHandler);
                }
            });
            bootstrap.remoteAddress(serverAddress);
        } catch (URISyntaxException e) {
            throw new InterruptedException(e.getMessage());
        }
    }
}

From source file:io.vertx.core.http.impl.ClientConnection.java

License:Open Source License

synchronized void toWebSocket(String requestURI, MultiMap headers, WebsocketVersion vers, String subProtocols,
        int maxWebSocketFrameSize, Handler<WebSocket> wsConnect) {
    if (ws != null) {
        throw new IllegalStateException("Already websocket");
    }//from  w w w.  j a v  a 2s.  com

    try {
        URI wsuri = new URI(requestURI);
        if (!wsuri.isAbsolute()) {
            // Netty requires an absolute url
            wsuri = new URI((ssl ? "https:" : "http:") + "//" + host + ":" + port + requestURI);
        }
        WebSocketVersion version = WebSocketVersion
                .valueOf((vers == null ? WebSocketVersion.V13 : vers).toString());
        HttpHeaders nettyHeaders;
        if (headers != null) {
            nettyHeaders = new DefaultHttpHeaders();
            for (Map.Entry<String, String> entry : headers) {
                nettyHeaders.add(entry.getKey(), entry.getValue());
            }
        } else {
            nettyHeaders = null;
        }
        handshaker = WebSocketClientHandshakerFactory.newHandshaker(wsuri, version, subProtocols, false,
                nettyHeaders, maxWebSocketFrameSize, !client.getOptions().isSendUnmaskedFrames(), false);
        ChannelPipeline p = channel.pipeline();
        p.addBefore("handler", "handshakeCompleter",
                new HandshakeInboundHandler(wsConnect, version != WebSocketVersion.V00));
        handshaker.handshake(channel).addListener(future -> {
            Handler<Throwable> handler = exceptionHandler();
            if (!future.isSuccess() && handler != null) {
                handler.handle(future.cause());
            }
        });
    } catch (Exception e) {
        handleException(e);
    }
}

From source file:io.vertx.core.http.impl.Http1xClientConnection.java

License:Open Source License

synchronized void toWebSocket(String requestURI, MultiMap headers, WebsocketVersion vers, String subProtocols,
        int maxWebSocketFrameSize, Handler<WebSocket> wsConnect) {
    if (ws != null) {
        throw new IllegalStateException("Already websocket");
    }/*from   w ww.j  a  va 2s.c o m*/

    try {
        URI wsuri = new URI(requestURI);
        if (!wsuri.isAbsolute()) {
            // Netty requires an absolute url
            wsuri = new URI((ssl ? "https:" : "http:") + "//" + host + ":" + port + requestURI);
        }
        WebSocketVersion version = WebSocketVersion
                .valueOf((vers == null ? WebSocketVersion.V13 : vers).toString());
        HttpHeaders nettyHeaders;
        if (headers != null) {
            nettyHeaders = new DefaultHttpHeaders();
            for (Map.Entry<String, String> entry : headers) {
                nettyHeaders.add(entry.getKey(), entry.getValue());
            }
        } else {
            nettyHeaders = null;
        }

        ChannelPipeline p = chctx.channel().pipeline();
        ArrayList<WebSocketClientExtensionHandshaker> extensionHandshakers = initializeWebsocketExtensionHandshakers(
                client.getOptions());
        if (!extensionHandshakers.isEmpty()) {
            p.addBefore("handler", "websocketsExtensionsHandler",
                    new WebSocketClientExtensionHandler(extensionHandshakers
                            .toArray(new WebSocketClientExtensionHandshaker[extensionHandshakers.size()])));
        }

        handshaker = WebSocketClientHandshakerFactory.newHandshaker(wsuri, version, subProtocols,
                !extensionHandshakers.isEmpty(), nettyHeaders, maxWebSocketFrameSize,
                !options.isSendUnmaskedFrames(), false);

        p.addBefore("handler", "handshakeCompleter",
                new HandshakeInboundHandler(wsConnect, version != WebSocketVersion.V00));
        handshaker.handshake(chctx.channel()).addListener(future -> {
            Handler<Throwable> handler = exceptionHandler();
            if (!future.isSuccess() && handler != null) {
                handler.handle(future.cause());
            }
        });
    } catch (Exception e) {
        handleException(e);
    }
}