switch (pathParams.transport()) { case XHR: addTransportHandler(new XhrPollingTransport(factory.config(), request), ctx); addSessionHandler(new PollingSessionState(sessions, getSession(factory, pathParams.sessionId())), ctx); break; case JSONP: addTransportHandler(new JsonpPollingTransport(factory.config(), request), ctx); addSessionHandler(new PollingSessionState(sessions, getSession(factory, pathParams.sessionId())), ctx); break; case XHR_SEND: checkSessionExists(pathParams.sessionId(), request); addTransportHandler(new XhrSendTransport(factory.config()), ctx); addSessionHandler(new SendingSessionState(sessions, sessions.get(pathParams.sessionId())), ctx); break; case XHR_STREAMING: addTransportHandler(new XhrStreamingTransport(factory.config(), request), ctx); addSessionHandler(new StreamingSessionState(sessions, getSession(factory, pathParams.sessionId())), ctx); break; case EVENTSOURCE: addTransportHandler(new EventSourceTransport(factory.config(), request), ctx); addSessionHandler(new StreamingSessionState(sessions, getSession(factory, pathParams.sessionId())), ctx); break; case HTMLFILE: addTransportHandler(new HtmlFileTransport(factory.config(), request), ctx); addSessionHandler(new StreamingSessionState(sessions, getSession(factory, pathParams.sessionId())), ctx); break; case JSONP_SEND: checkSessionExists(pathParams.sessionId(), request); addTransportHandler(new JsonpSendTransport(factory.config()), ctx);
switch (pathParams.transport()) { case XHR: addTransportHandler(new XhrPollingTransport(factory.config(), request), ctx); addSessionHandler(new PollingSessionState(sessions, getSession(factory, pathParams.sessionId())), ctx); break; case JSONP: addTransportHandler(new JsonpPollingTransport(factory.config(), request), ctx); addSessionHandler(new PollingSessionState(sessions, getSession(factory, pathParams.sessionId())), ctx); break; case XHR_SEND: checkSessionExists(pathParams.sessionId(), request); addTransportHandler(new XhrSendTransport(factory.config()), ctx); addSessionHandler(new SendingSessionState(sessions, sessions.get(pathParams.sessionId())), ctx); break; case XHR_STREAMING: addTransportHandler(new XhrStreamingTransport(factory.config(), request), ctx); addSessionHandler(new StreamingSessionState(sessions, getSession(factory, pathParams.sessionId())), ctx); break; case EVENTSOURCE: addTransportHandler(new EventSourceTransport(factory.config(), request), ctx); addSessionHandler(new StreamingSessionState(sessions, getSession(factory, pathParams.sessionId())), ctx); break; case HTMLFILE: addTransportHandler(new HtmlFileTransport(factory.config(), request), ctx); addSessionHandler(new StreamingSessionState(sessions, getSession(factory, pathParams.sessionId())), ctx); break; case JSONP_SEND: checkSessionExists(pathParams.sessionId(), request); addTransportHandler(new JsonpSendTransport(factory.config()), ctx);
private static void handleService(final SockJsServiceFactory factory, final FullHttpRequest request, final ChannelHandlerContext ctx) throws Exception { if (logger.isDebugEnabled()) { logger.debug("RequestUri : [{}]", request.getUri()); } final String pathWithoutPrefix = request.getUri().replaceFirst(factory.config().prefix(), ""); final String path = new QueryStringDecoder(pathWithoutPrefix).path(); if (Greeting.matches(path)) { writeResponse(ctx.channel(), request, Greeting.response(request)); } else if (Info.matches(path)) { writeResponse(ctx.channel(), request, Info.response(factory.config(), request)); } else if (Iframe.matches(path)) { writeResponse(ctx.channel(), request, Iframe.response(factory.config(), request)); } else if (Transports.Type.WEBSOCKET.path().equals(path)) { addTransportHandler(new RawWebSocketTransport(factory.config(), factory.create()), ctx); ctx.fireChannelRead(request.retain()); } else { final PathParams sessionPath = matches(path); if (sessionPath.matches()) { handleSession(factory, request, ctx, sessionPath); } else { writeNotFoundResponse(request, ctx); } } }
private static void handleService(final SockJsServiceFactory factory, final FullHttpRequest request, final ChannelHandlerContext ctx) throws Exception { if (logger.isDebugEnabled()) { logger.debug("RequestUri : [{}]", request.getUri()); } final String pathWithoutPrefix = request.getUri().replaceFirst(factory.config().prefix(), ""); final String path = new QueryStringDecoder(pathWithoutPrefix).path(); if (Greeting.matches(path)) { writeResponse(ctx.channel(), request, Greeting.response(request)); } else if (Info.matches(path)) { writeResponse(ctx.channel(), request, Info.response(factory.config(), request)); } else if (Iframe.matches(path)) { writeResponse(ctx.channel(), request, Iframe.response(factory.config(), request)); } else if (Transports.Type.WEBSOCKET.path().equals(path)) { addTransportHandler(new RawWebSocketTransport(factory.config(), factory.create()), ctx); ctx.fireChannelRead(request.retain()); } else { final PathParams sessionPath = matches(path); if (sessionPath.matches()) { handleSession(factory, request, ctx, sessionPath); } else { writeNotFoundResponse(request, ctx); } } }