setMethod(request.getMethod()); setHttpVersion(request.getProtocol()); setHeader(name,values); for (String p : parseProtocols(candidate)) setSubProtocols(subProtocols); addExtensions(config);
if (!"websocket".equalsIgnoreCase(request.getHeader("Upgrade"))) if (!"HTTP/1.1".equals(request.getHttpVersion())) int version = request.getHeaderInt("Sec-WebSocket-Version"); if (version < 0) version = request.getHeaderInt("Sec-WebSocket-Draft"); extensionStack.negotiate(request.getExtensions()); WebSocketSession session = new WebSocketSession(request.getRequestURI(),driver,connection); session.setPolicy(getPolicy().clonePolicy()); session.setUpgradeRequest(request); request.setServletAttribute(HttpConnection.UPGRADE_CONNECTION_ATTRIBUTE,connection); handshaker.doHandshakeResponse(request,response); LOG.debug("Websocket upgrade {} {} {} {}",request.getRequestURI(),version,response.getAcceptedSubProtocol(),connection); return true;
@Override public void doHandshakeResponse(ServletWebSocketRequest request, ServletWebSocketResponse response) throws IOException String key = request.getHeader("Sec-WebSocket-Key");
@Override public boolean acceptWebSocket(HttpServletRequest request, HttpServletResponse response) throws IOException { ServletWebSocketRequest sockreq = new ServletWebSocketRequest(request); ServletWebSocketResponse sockresp = new ServletWebSocketResponse(response); WebSocketCreator creator = getCreator(); UpgradeContext context = getActiveUpgradeContext(); if (context == null) { context = new UpgradeContext(); setActiveUpgradeContext(context); } context.setRequest(sockreq); context.setResponse(sockresp); Object websocketPojo = creator.createWebSocket(sockreq,sockresp); // Handle response forbidden (and similar paths) if (sockresp.isCommitted()) { return false; } if (websocketPojo == null) { // no creation, sorry response.sendError(HttpServletResponse.SC_SERVICE_UNAVAILABLE); return false; } // Send the upgrade EventDriver driver = eventDriverFactory.wrap(websocketPojo); return upgrade(sockreq,sockresp,driver); }
if (!"websocket".equalsIgnoreCase(request.getHeader("Upgrade"))) if (!"HTTP/1.1".equals(request.getHttpVersion())) int version = request.getHeaderInt("Sec-WebSocket-Version"); if (version < 0) version = request.getHeaderInt("Sec-WebSocket-Draft"); extensionStack.negotiate(request.getExtensions()); WebSocketSession session = new WebSocketSession(request.getRequestURI(),driver,connection); session.setPolicy(getPolicy().clonePolicy()); session.setUpgradeRequest(request); request.setServletAttribute(HttpConnection.UPGRADE_CONNECTION_ATTRIBUTE,connection); handshaker.doHandshakeResponse(request,response); LOG.debug("Websocket upgrade {} {} {} {}",request.getRequestURI(),version,response.getAcceptedSubProtocol(),connection); return true;
@Override public void doHandshakeResponse(ServletWebSocketRequest request, ServletWebSocketResponse response) throws IOException String key = request.getHeader("Sec-WebSocket-Key");
@Override public boolean acceptWebSocket(HttpServletRequest request, HttpServletResponse response) throws IOException { ServletWebSocketRequest sockreq = new ServletWebSocketRequest(request); ServletWebSocketResponse sockresp = new ServletWebSocketResponse(response); WebSocketCreator creator = getCreator(); UpgradeContext context = getActiveUpgradeContext(); if (context == null) { context = new UpgradeContext(); setActiveUpgradeContext(context); } context.setRequest(sockreq); context.setResponse(sockresp); Object websocketPojo = creator.createWebSocket(sockreq,sockresp); // Handle response forbidden (and similar paths) if (sockresp.isCommitted()) { return false; } if (websocketPojo == null) { // no creation, sorry response.sendError(HttpServletResponse.SC_SERVICE_UNAVAILABLE); return false; } // Send the upgrade EventDriver driver = eventDriverFactory.wrap(websocketPojo); return upgrade(sockreq,sockresp,driver); }
setMethod(request.getMethod()); setHttpVersion(request.getProtocol()); setHeader(name,values); for (String p : parseProtocols(candidate)) setSubProtocols(subProtocols); addExtensions(config);