@Override protected void connectionFailed(SocketChannel channel, Throwable ex, Object attachment) { LOG.debug("Connection Failed",ex); ConnectPromise connect = (ConnectPromise)attachment; connect.failed(ex); }
public UpgradeConnection(EndPoint endp, Executor executor, ConnectPromise connectPromise) { super(endp,executor); this.connectPromise = connectPromise; this.bufferPool = connectPromise.getClient().getBufferPool(); this.request = connectPromise.getRequest(); // Setup the parser this.parser = new HttpResponseHeaderParser(); }
public WebSocketClientConnection(EndPoint endp, Executor executor, ConnectPromise connectPromise) { super(endp,executor,connectPromise.getClient().getScheduler(),connectPromise.getClient().getPolicy(),connectPromise.getClient().getBufferPool()); this.connectPromise = connectPromise; this.masker = connectPromise.getMasker(); assert (this.masker != null); }
@Override public void onOpen() { boolean beenOpened = opened.getAndSet(true); if (!beenOpened) { WebSocketSession session = getSession(); ConnectionManager connectionManager = connectPromise.getClient().getConnectionManager(); connectionManager.addSession(session); connectPromise.succeeded(session); ByteBuffer extraBuf = connectPromise.getResponse().getRemainingBuffer(); if (extraBuf.hasRemaining()) { LOG.debug("Parsing extra remaining buffer from UpgradeConnection"); getParser().parse(extraBuf); } } super.onOpen(); }
String scheme = connectPromise.getRequest().getRequestURI().getScheme(); sslEndPoint.setIdleTimeout(connectPromise.getClient().getMaxIdleTimeout()); sslEndPoint.setConnection(connection); connectionOpened(connection); endPoint.setIdleTimeout(connectPromise.getClient().getMaxIdleTimeout()); return newUpgradeConnection(channel,endPoint,connectPromise); connectPromise.failed(e);
private void upgradeConnection(ClientUpgradeResponse response) { EndPoint endp = getEndPoint(); Executor executor = getExecutor(); WebSocketClientConnection connection = new WebSocketClientConnection(endp,executor,connectPromise); // Initialize / Negotiate Extensions EventDriver websocket = connectPromise.getDriver(); WebSocketPolicy policy = connectPromise.getClient().getPolicy(); WebSocketSession session = new WebSocketSession(request.getRequestURI(),websocket,connection); session.setPolicy(policy); session.setUpgradeResponse(response); connection.setSession(session); // Initialize / Negotiate Extensions ExtensionStack extensionStack = new ExtensionStack(connectPromise.getClient().getExtensionFactory()); extensionStack.negotiate(response.getExtensions()); extensionStack.configure(connection.getParser()); extensionStack.configure(connection.getGenerator()); // Setup Incoming Routing connection.setNextIncomingFrames(extensionStack); extensionStack.setNextIncoming(session); // Setup Outgoing Routing session.setOutgoingHandler(extensionStack); extensionStack.setNextOutgoing(connection); // Now swap out the connection endp.setConnection(connection); connection.onOpen(); }
public UpgradeConnection newUpgradeConnection(SocketChannel channel, EndPoint endPoint, ConnectPromise connectPromise) { WebSocketClient client = connectPromise.getClient(); Executor executor = client.getExecutor(); UpgradeConnection connection = new UpgradeConnection(endPoint,executor,connectPromise); return connection; }
private void notifyConnect(ClientUpgradeResponse response) { connectPromise.setResponse(response); }
@Override public void run() { URI uri = connectPromise.getRequest().getRequestURI(); request.setRequestURI(uri); String rawRequest = request.generate(); ByteBuffer buf = BufferUtil.toBuffer(rawRequest,StringUtil.__UTF8_CHARSET); getEndPoint().write(this,buf); }
@Override public void onOpen() { boolean beenOpened = opened.getAndSet(true); if (!beenOpened) { WebSocketSession session = getSession(); ConnectionManager connectionManager = connectPromise.getClient().getConnectionManager(); connectionManager.addSession(session); connectPromise.succeeded(session); ByteBuffer extraBuf = connectPromise.getResponse().getRemainingBuffer(); if (extraBuf.hasRemaining()) { LOG.debug("Parsing extra remaining buffer from UpgradeConnection"); getParser().parse(extraBuf); } } super.onOpen(); }
String scheme = connectPromise.getRequest().getRequestURI().getScheme(); sslEndPoint.setIdleTimeout(connectPromise.getClient().getMaxIdleTimeout()); sslEndPoint.setConnection(connection); connectionOpened(connection); endPoint.setIdleTimeout(connectPromise.getClient().getMaxIdleTimeout()); return newUpgradeConnection(channel,endPoint,connectPromise); connectPromise.failed(e);
private void upgradeConnection(ClientUpgradeResponse response) { EndPoint endp = getEndPoint(); Executor executor = getExecutor(); WebSocketClientConnection connection = new WebSocketClientConnection(endp,executor,connectPromise); // Initialize / Negotiate Extensions EventDriver websocket = connectPromise.getDriver(); WebSocketPolicy policy = connectPromise.getClient().getPolicy(); WebSocketSession session = new WebSocketSession(request.getRequestURI(),websocket,connection); session.setPolicy(policy); session.setUpgradeResponse(response); connection.setSession(session); // Initialize / Negotiate Extensions ExtensionStack extensionStack = new ExtensionStack(connectPromise.getClient().getExtensionFactory()); extensionStack.negotiate(response.getExtensions()); extensionStack.configure(connection.getParser()); extensionStack.configure(connection.getGenerator()); // Setup Incoming Routing connection.setNextIncomingFrames(extensionStack); extensionStack.setNextIncoming(session); // Setup Outgoing Routing session.setOutgoingHandler(extensionStack); extensionStack.setNextOutgoing(connection); // Now swap out the connection endp.setConnection(connection); connection.onOpen(); }
public UpgradeConnection newUpgradeConnection(SocketChannel channel, EndPoint endPoint, ConnectPromise connectPromise) { WebSocketClient client = connectPromise.getClient(); Executor executor = client.getExecutor(); UpgradeConnection connection = new UpgradeConnection(endPoint,executor,connectPromise); return connection; }
private void notifyConnect(ClientUpgradeResponse response) { connectPromise.setResponse(response); }
@Override public void run() { URI uri = connectPromise.getRequest().getRequestURI(); request.setRequestURI(uri); String rawRequest = request.generate(); ByteBuffer buf = BufferUtil.toBuffer(rawRequest,StringUtil.__UTF8_CHARSET); getEndPoint().write(this,buf); }
public UpgradeConnection(EndPoint endp, Executor executor, ConnectPromise connectPromise) { super(endp,executor); this.connectPromise = connectPromise; this.bufferPool = connectPromise.getClient().getBufferPool(); this.request = connectPromise.getRequest(); // Setup the parser this.parser = new HttpResponseHeaderParser(); }
public WebSocketClientConnection(EndPoint endp, Executor executor, ConnectPromise connectPromise) { super(endp,executor,connectPromise.getClient().getScheduler(),connectPromise.getClient().getPolicy(),connectPromise.getClient().getBufferPool()); this.connectPromise = connectPromise; this.masker = connectPromise.getMasker(); assert (this.masker != null); }
@Override public void onClose() { super.onClose(); ConnectionManager connectionManager = connectPromise.getClient().getConnectionManager(); connectionManager.removeSession(getSession()); }
@Override protected void connectionFailed(SocketChannel channel, Throwable ex, Object attachment) { LOG.debug("Connection Failed",ex); ConnectPromise connect = (ConnectPromise)attachment; connect.failed(ex); }
@Override public void onClose() { super.onClose(); ConnectionManager connectionManager = connectPromise.getClient().getConnectionManager(); connectionManager.removeSession(getSession()); }