/** * Create a SockJS handler * * @param vertx the Vert.x instance * @param options options to configure the handler * @return the handler */ static SockJSHandler create(Vertx vertx, SockJSHandlerOptions options) { return new SockJSHandlerImpl(vertx, options); }
@Override public SockJSHandler bridge(BridgeOptions bridgeOptions) { return bridge(bridgeOptions, null); }
@Override public SockJSHandler bridge(BridgeOptions bridgeOptions, Handler<BridgeEvent> bridgeEventHandler) { socketHandler(new EventBusBridgeImpl(vertx, bridgeOptions, bridgeEventHandler)); return this; }
Handler<RoutingContext> iframeHandler = createIFrameHandler(iframeHTML); router.post("/chunking_test").handler(createChunkingTestHandler()); router.options("/chunking_test").handler(BaseTransport.createCORSOptionsHandler(options, "OPTIONS, POST"));
private Handler<RoutingContext> createIFrameHandler(String iframeHTML) { String etag = getMD5String(iframeHTML); return rc -> { try { if (log.isTraceEnabled()) log.trace("In Iframe handler"); if (etag != null && etag.equals(rc.request().getHeader("if-none-match"))) { rc.response().setStatusCode(304); rc.response().end(); } else { long oneYear = 365 * 24 * 60 * 60 * 1000L; String expires = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss zzz").format(new Date(System.currentTimeMillis() + oneYear)); rc.response().putHeader("Content-Type", "text/html; charset=UTF-8") .putHeader("Cache-Control", "public,max-age=31536000") .putHeader("Expires", expires).putHeader("ETag", etag).end(iframeHTML); } } catch (Exception e) { log.error("Failed to server iframe", e); } }; }
Handler<RoutingContext> iframeHandler = createIFrameHandler(iframeHTML); router.post("/chunking_test").handler(createChunkingTestHandler()); router.options("/chunking_test").handler(BaseTransport.createCORSOptionsHandler(options, "OPTIONS, POST"));
private Handler<RoutingContext> createIFrameHandler(String iframeHTML) { String etag = getMD5String(iframeHTML); return rc -> { try { if (log.isTraceEnabled()) log.trace("In Iframe handler"); if (etag != null && etag.equals(rc.request().getHeader("if-none-match"))) { rc.response().setStatusCode(304); rc.response().end(); } else { long oneYear = 365 * 24 * 60 * 60 * 1000L; String expires = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss zzz").format(new Date(System.currentTimeMillis() + oneYear)); rc.response().putHeader("Content-Type", "text/html; charset=UTF-8") .putHeader("Cache-Control", "public,max-age=31536000") .putHeader("Expires", expires).putHeader("ETag", etag).end(iframeHTML); } } catch (Exception e) { log.error("Failed to server iframe", e); } }; }
/** * Create a SockJS handler * * @param vertx the Vert.x instance * @return the handler */ static SockJSHandler create(Vertx vertx) { return new SockJSHandlerImpl(vertx, new SockJSHandlerOptions()); }
@Override public SockJSHandler bridge(BridgeOptions bridgeOptions, Handler<BridgeEvent> bridgeEventHandler) { socketHandler(new EventBusBridgeImpl(vertx, bridgeOptions, bridgeEventHandler)); return this; }
@Override public SockJSHandler bridge(BridgeOptions bridgeOptions) { return bridge(bridgeOptions, null); }
/** * Create a SockJS handler * * @param vertx the Vert.x instance * @param options options to configure the handler * @return the handler */ static SockJSHandler create(Vertx vertx, SockJSHandlerOptions options) { return new SockJSHandlerImpl(vertx, options); }
/** * Create a SockJS handler * * @param vertx the Vert.x instance * @return the handler */ static SockJSHandler create(Vertx vertx) { return new SockJSHandlerImpl(vertx, new SockJSHandlerOptions()); }