List of usage examples for io.netty.handler.codec.http.websocketx.extensions WebSocketClientExtensionHandler WebSocketClientExtensionHandler
public WebSocketClientExtensionHandler(WebSocketClientExtensionHandshaker... extensionHandshakers)
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"); }/* w w w . ja 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); } }