Package io.undertow.websockets.core.protocol

Examples of io.undertow.websockets.core.protocol.Handshake


            if (!path.startsWith("/")) {
                path = "/" + path;
            }
            PathTemplateMatcher.PathMatchResult<WebSocketHandshakeHolder> matchResult = pathTemplateMatcher.match(path);
            if (matchResult != null) {
                Handshake handshaker = null;
                for (Handshake method : matchResult.getValue().handshakes) {
                    if (method.matches(facade)) {
                        handshaker = method;
                        break;
                    }
                }

                if (handshaker != null) {
                    facade.putAttachment(HandshakeUtil.PATH_PARAMS, matchResult.getParameters());
                    final Handshake selected = handshaker;
                    facade.upgradeChannel(new HttpUpgradeListener() {
                        @Override
                        public void handleUpgrade(StreamConnection streamConnection, HttpServerExchange exchange) {
                            WebSocketChannel channel = selected.createChannel(facade, streamConnection, facade.getBufferPool());
                            peerConnections.add(channel);
                            callback.onConnect(facade, channel);
                        }
                    });
                    handshaker.handshake(facade);
View Full Code Here


    @Override
    protected void doGet(final HttpServletRequest req, final HttpServletResponse resp) throws ServletException, IOException {

        final ServletWebSocketHttpExchange facade = new ServletWebSocketHttpExchange(req, resp, peerConnections);
        Handshake handshaker = null;
        for (Handshake method : handshakes) {
            if (method.matches(facade)) {
                handshaker = method;
                break;
            }
        }

        if (handshaker == null) {
            UndertowLogger.REQUEST_LOGGER.debug("Could not find hand shaker for web socket request");
            resp.sendError(StatusCodes.BAD_REQUEST);
            return;
        }
        final Handshake selected = handshaker;
        facade.upgradeChannel(new HttpUpgradeListener() {
            @Override
            public void handleUpgrade(StreamConnection streamConnection, HttpServerExchange exchange) {
                WebSocketChannel channel = selected.createChannel(facade, streamConnection, facade.getBufferPool());
                peerConnections.add(channel);
                callback.onConnect(facade, channel);
            }
        });
        handshaker.handshake(facade);
View Full Code Here

            final Map<String, String> params = new HashMap<String, String>();
            //we need a better way of handling this mapping.
            for (ConfiguredServerEndpoint endpoint : configuredServerEndpoints) {
                if (endpoint.getPathTemplate().matches(path, params)) {
                    Handshake handshaker = null;
                    for (Handshake method : handshakes.get(endpoint)) {
                        if (method.matches(facade)) {
                            handshaker = method;
                            break;
                        }
                    }

                    if (handshaker == null) {
                        chain.doFilter(request, response);
                    } else {
                        facade.putAttachment(HandshakeUtil.PATH_PARAMS, params);
                        handshaker.handshake(facade, callback);
                        return;
                    }
                }
            }
View Full Code Here

    final EndpointSessionHandler endpointSessionHandler = new EndpointSessionHandler(wsContainer);

    final ConfiguredServerEndpoint configuredServerEndpoint = createConfiguredServerEndpoint(
        selectedProtocol, selectedExtensions, endpoint, servletRequest);

    final Handshake handshake = getHandshakeToUse(exchange, configuredServerEndpoint);

    exchange.upgradeChannel(new HttpUpgradeListener() {
      @Override
      public void handleUpgrade(StreamConnection connection, HttpServerExchange serverExchange) {
        WebSocketChannel channel = handshake.createChannel(exchange, connection, exchange.getBufferPool());
        if (peerConnections != null) {
          peerConnections.add(channel);
        }
        endpointSessionHandler.onConnect(exchange, channel);
      }
    });

    handshake.handshake(exchange);
  }
View Full Code Here

      throw new HandshakeFailureException("Failed to instantiate ServletWebSocketHttpExchange", ex);
    }
  }

  private Handshake getHandshakeToUse(ServletWebSocketHttpExchange exchange, ConfiguredServerEndpoint endpoint) {
    Handshake handshake = new JsrHybi13Handshake(endpoint);
    if (handshake.matches(exchange)) {
      return handshake;
    }
    handshake = new JsrHybi08Handshake(endpoint);
    if (handshake.matches(exchange)) {
      return handshake;
    }
    handshake = new JsrHybi07Handshake(endpoint);
    if (handshake.matches(exchange)) {
      return handshake;
    }
    // Should never occur
    throw new HandshakeFailureException("No matching Undertow Handshake found: " + exchange.getRequestHeaders());
  }
View Full Code Here

    @Override
    protected void doGet(final HttpServletRequest req, final HttpServletResponse resp) throws ServletException, IOException {

        final ServletWebSocketHttpExchange facade = new ServletWebSocketHttpExchange(req, resp);
        Handshake handshaker = null;
        for (Handshake method : handshakes) {
            if (method.matches(facade)) {
                handshaker = method;
                break;
            }
        }

        if (handshaker == null) {
            UndertowLogger.REQUEST_LOGGER.debug("Could not find hand shaker for web socket request");
            resp.sendError(400);
            return;
        }
        handshaker.handshake(facade, callback);
    }
View Full Code Here

    @Override
    protected void doGet(final HttpServletRequest req, final HttpServletResponse resp) throws ServletException, IOException {

        final ServletWebSocketHttpExchange facade = new ServletWebSocketHttpExchange(req, resp);
        Handshake handshaker = null;
        for (Handshake method : handshakes) {
            if (method.matches(facade)) {
                handshaker = method;
                break;
            }
        }

        if (handshaker == null) {
            UndertowLogger.REQUEST_LOGGER.debug("Could not find hand shaker for web socket request");
            resp.sendError(400);
            return;
        }
        handshaker.handshake(facade, callback);
    }
View Full Code Here

            exchange.setResponseCode(403);
            exchange.endExchange();
            return;
        }
        final AsyncWebSocketHttpServerExchange facade = new AsyncWebSocketHttpServerExchange(exchange);
        Handshake handshaker = null;
        for (Handshake method : handshakes) {
            if (method.matches(facade)) {
                handshaker = method;
                break;
            }
        }

        if (handshaker == null) {
            UndertowLogger.REQUEST_LOGGER.debug("Could not find hand shaker for web socket request");
            exchange.setResponseCode(403);
            exchange.endExchange();
            return;
        }

        handshaker.handshake(facade, callback);

    }
View Full Code Here

    @Override
    protected void doGet(final HttpServletRequest req, final HttpServletResponse resp) throws ServletException, IOException {

        final ServletWebSocketHttpExchange facade = new ServletWebSocketHttpExchange(req, resp, peerConnections);
        Handshake handshaker = null;
        for (Handshake method : handshakes) {
            if (method.matches(facade)) {
                handshaker = method;
                break;
            }
        }

        if (handshaker == null) {
            UndertowLogger.REQUEST_LOGGER.debug("Could not find hand shaker for web socket request");
            resp.sendError(400);
            return;
        }
        final Handshake selected = handshaker;
        facade.upgradeChannel(new HttpUpgradeListener() {
            @Override
            public void handleUpgrade(StreamConnection streamConnection, HttpServerExchange exchange) {
                WebSocketChannel channel = selected.createChannel(facade, streamConnection, facade.getBufferPool());
                peerConnections.add(channel);
                callback.onConnect(facade, channel);
            }
        });
        handshaker.handshake(facade);
View Full Code Here

            if (!path.startsWith("/")) {
                path = "/" + path;
            }
            PathTemplateMatcher.PathMatchResult<WebSocketHandshakeHolder> matchResult = pathTemplateMatcher.match(path);
            if (matchResult != null) {
                Handshake handshaker = null;
                for (Handshake method : matchResult.getValue().handshakes) {
                    if (method.matches(facade)) {
                        handshaker = method;
                        break;
                    }
                }

                if (handshaker != null) {
                    facade.putAttachment(HandshakeUtil.PATH_PARAMS, matchResult.getParameters());
                    final Handshake selected = handshaker;
                    facade.upgradeChannel(new HttpUpgradeListener() {
                        @Override
                        public void handleUpgrade(StreamConnection streamConnection, HttpServerExchange exchange) {
                            WebSocketChannel channel = selected.createChannel(facade, streamConnection, facade.getBufferPool());
                            peerConnections.add(channel);
                            callback.onConnect(facade, channel);
                        }
                    });
                    handshaker.handshake(facade);
View Full Code Here

TOP

Related Classes of io.undertow.websockets.core.protocol.Handshake

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.