List of usage examples for io.netty.handler.codec.http.websocketx WebSocketServerHandshakerFactory WebSocketServerHandshakerFactory
public WebSocketServerHandshakerFactory(String webSocketURL, String subprotocols, boolean allowExtensions, int maxFramePayloadLength, boolean allowMaskMismatch)
From source file:com.yeetor.androidcontrol.WSSocketHandler.java
License:Open Source License
private void handleHttpRequest(ChannelHandlerContext ctx, FullHttpRequest req) { if (!req.getDecoderResult().isSuccess() || (!"websocket".equals(req.headers().get("Upgrade")))) { if (event != null) { DefaultFullHttpResponse response = event.onHttpRequest(ctx, req); if (response != null) { sendHttpResponse(ctx, req, response); return; }// w ww .ja v a 2 s .co m } sendHttpResponse(ctx, req, new DefaultFullHttpResponse(HttpVersion.HTTP_1_1, HttpResponseStatus.BAD_REQUEST)); return; } WebSocketServerHandshakerFactory wsFactory = new WebSocketServerHandshakerFactory(null, null, true, Integer.MAX_VALUE, true); handshaker = wsFactory.newHandshaker(req); if (handshaker == null) { WebSocketServerHandshakerFactory.sendUnsupportedWebSocketVersionResponse(ctx.channel()); } else { handshaker.handshake(ctx.channel(), req); } }
From source file:com.yeetor.server.handler.WSHandler.java
License:Open Source License
private void handleWSConnect(ChannelHandlerContext ctx, FullHttpRequest msg) { WebSocketServerHandshakerFactory wsFactory = new WebSocketServerHandshakerFactory(null, null, true, Integer.MAX_VALUE, true); handshaker = wsFactory.newHandshaker(msg); if (handshaker == null) { WebSocketServerHandshakerFactory.sendUnsupportedWebSocketVersionResponse(ctx.channel()); } else {/* ww w. j a v a 2s .c om*/ handshaker.handshake(ctx.channel(), msg); } }
From source file:io.vertx.core.http.impl.Http1xServerConnection.java
License:Open Source License
private WebSocketServerHandshaker createHandshaker(HttpRequest request) { // As a fun part, Firefox 6.0.2 supports Websockets protocol '7'. But, // it doesn't send a normal 'Connection: Upgrade' header. Instead it // sends: 'Connection: keep-alive, Upgrade'. Brilliant. Channel ch = channel();/*from w w w .j a v a2s .c o m*/ String connectionHeader = request.headers().get(io.vertx.core.http.HttpHeaders.CONNECTION); if (connectionHeader == null || !connectionHeader.toLowerCase().contains("upgrade")) { HttpUtils.sendError(ch, BAD_REQUEST, "\"Connection\" must be \"Upgrade\"."); return null; } if (request.method() != HttpMethod.GET) { HttpUtils.sendError(ch, METHOD_NOT_ALLOWED, null); return null; } try { WebSocketServerHandshakerFactory factory = new WebSocketServerHandshakerFactory( HttpUtils.getWebSocketLocation(request, isSSL()), options.getWebsocketSubProtocols(), options.perMessageWebsocketCompressionSupported() || options.perFrameWebsocketCompressionSupported(), options.getMaxWebsocketFrameSize(), options.isAcceptUnmaskedFrames()); WebSocketServerHandshaker shake = factory.newHandshaker(request); if (shake == null) { log.error("Unrecognised websockets handshake"); WebSocketServerHandshakerFactory.sendUnsupportedVersionResponse(ch); } return shake; } catch (Exception e) { throw new VertxException(e); } }
From source file:io.vertx.core.http.impl.HttpServerImpl.java
License:Open Source License
WebSocketServerHandshaker createHandshaker(Channel ch, HttpRequest request) { // As a fun part, Firefox 6.0.2 supports Websockets protocol '7'. But, // it doesn't send a normal 'Connection: Upgrade' header. Instead it // sends: 'Connection: keep-alive, Upgrade'. Brilliant. String connectionHeader = request.headers().get(io.vertx.core.http.HttpHeaders.CONNECTION); if (connectionHeader == null || !connectionHeader.toLowerCase().contains("upgrade")) { sendError("\"Connection\" must be \"Upgrade\".", BAD_REQUEST, ch); return null; }/*from ww w . ja va 2s. com*/ if (request.getMethod() != HttpMethod.GET) { sendError(null, METHOD_NOT_ALLOWED, ch); return null; } try { WebSocketServerHandshakerFactory factory = new WebSocketServerHandshakerFactory( getWebSocketLocation(ch.pipeline(), request), subProtocols, false, options.getMaxWebsocketFrameSize(), options.isAcceptUnmaskedFrames()); WebSocketServerHandshaker shake = factory.newHandshaker(request); if (shake == null) { log.error("Unrecognised websockets handshake"); WebSocketServerHandshakerFactory.sendUnsupportedVersionResponse(ch); } return shake; } catch (Exception e) { throw new VertxException(e); } }