@Override public void start() throws Exception { Router router = Router.router(vertx); router.route().handler(BodyHandler.create()); router.route().handler(req -> req.response().putHeader("content-type", "text/html") .end("<html><body><h1>Hello from vert.x!</h1></body></html>")); HttpServer server = vertx.createHttpServer(); server.requestStream() .toFlowable() .map(HttpServerRequest::pause) .onBackpressureDrop(req -> req.response().setStatusCode(503).end()) .observeOn(RxHelper.scheduler(vertx.getDelegate())) .subscribe(req -> { req.resume(); router.accept(req); }); server.rxListen(PORT).subscribe(res -> generateRequests()); }
/** * Create an HTTP server for the REST service. * * @param router router instance * @param host server host * @param port server port * @return asynchronous result */ protected Completable createHttpServer(Router router, String host, int port) { return vertx.createHttpServer() .requestHandler(router::accept) .rxListen(port, host) .toCompletable(); }
private Completable createHttpServer(JsonObject config, Router router) { return vertx .createHttpServer() .requestHandler(router::accept) .rxListen(config.getInteger("HTTP_PORT", 8080)) .toCompletable(); }
@Override public void start() { /** 1.Call router hub to mount commont **/ final Axis<Router> routerAxiser = Fn.poolThread(Pool.ROUTERS, () -> Ut.instance(RouterAxis.class)); /** 2.Call route hub to mount defined **/ final Axis<Router> axiser = Fn.poolThread(Pool.EVENTS, () -> Ut.instance(EventAxis.class)); /** 3.Get the default HttpServer Options **/ ZeroAtomic.RX_OPTS.forEach((port, option) -> { /** 3.1.Single server processing **/ final HttpServer server = this.vertx.createHttpServer(option); /** 3.2. Build router with current option **/ final Router router = Router.router(this.vertx); routerAxiser.mount(router); axiser.mount(router); /** 3.3. Listen for router on the server **/ final Single<HttpServer> result = server.requestHandler(router::accept).rxListen(); /** 3.4. Log output **/ { result.subscribe((rxServer) -> { this.recordServer(option, router); }); } }); }
@Override public void start() { /** 1.Call router hub to mount commont **/ final Axis<Router> routerAxiser = Fn.poolThread(Pool.ROUTERS, () -> Ut.instance(RouterAxis.class)); /** 2.Call route hub to mount defined **/ final Axis<Router> axiser = Fn.poolThread(Pool.EVENTS, () -> Ut.instance(EventAxis.class)); /** 3.Get the default HttpServer Options **/ ZeroAtomic.RX_OPTS.forEach((port, option) -> { /** 3.1.Single server processing **/ final HttpServer server = this.vertx.createHttpServer(option); /** 3.2. Build router with current option **/ final Router router = Router.router(this.vertx); routerAxiser.mount(router); axiser.mount(router); /** 3.3. Listen for router on the server **/ final Single<HttpServer> result = server.requestHandler(router::accept).rxListen(); /** 3.4. Log output **/ { result.subscribe((rxServer) -> { this.recordServer(option, router); }); } }); }
private Completable startVertx(VertxResteasyDeployment deployment) { return Completable.defer(() -> { Router router = Router.router(vertx); AppGlobals globals = AppGlobals.get(); globals.setRouter(router); VertxPluginRequestHandler resteasyHandler = new VertxPluginRequestHandler(vertx, deployment, plugins); return doOnPlugins(plugin -> plugin.preRoute()) .doOnComplete(() -> { setupRoutes(router); router.route().handler(routingContext -> { ResteasyProviderFactory.pushContext(RoutingContext.class, routingContext); ResteasyProviderFactory.pushContext(io.vertx.rxjava.ext.web.RoutingContext.class, io.vertx.rxjava.ext.web.RoutingContext.newInstance(routingContext.getDelegate())); resteasyHandler.handle(routingContext.request()); }); }).concatWith(doOnPlugins(plugin -> plugin.postRoute())) .concatWith(Completable.defer(() -> { // Start the front end server using the Jax-RS controller int port = globals.getConfig().getInteger("http_port", 9000); String host = globals.getConfig().getString("http_host", NetServerOptions.DEFAULT_HOST); return vertx.createHttpServer() .requestHandler(router::accept) .rxListen(port, host) .doOnSuccess(server -> System.out.println("Server started on port " + server.actualPort())) .doOnError(t -> t.printStackTrace()) .ignoreElement(); })); }); }
private Completable startVertx(VertxResteasyDeployment deployment) { return Completable.defer(() -> { Router router = Router.router(vertx); AppGlobals globals = AppGlobals.get(); globals.setRouter(router); VertxPluginRequestHandler resteasyHandler = new VertxPluginRequestHandler(vertx, deployment, plugins); return doOnPlugins(plugin -> plugin.preRoute()) .doOnComplete(() -> { setupRoutes(router); router.route().handler(routingContext -> { ResteasyProviderFactory.pushContext(RoutingContext.class, routingContext); ResteasyProviderFactory.pushContext(io.vertx.rxjava.ext.web.RoutingContext.class, io.vertx.rxjava.ext.web.RoutingContext.newInstance(routingContext.getDelegate())); resteasyHandler.handle(routingContext.request()); }); }).concatWith(doOnPlugins(plugin -> plugin.postRoute())) .concatWith(Completable.defer(() -> { // Start the front end server using the Jax-RS controller int port = globals.getConfig().getInteger("http_port", 9000); String host = globals.getConfig().getString("http_host", NetServerOptions.DEFAULT_HOST); return vertx.createHttpServer() .requestHandler(router::accept) .rxListen(port, host) .doOnSuccess(server -> System.out.println("Server started on port " + server.actualPort())) .doOnError(t -> t.printStackTrace()) .ignoreElement(); })); }); }
.subscribe(); server.rxListen(config().getInteger("http.port", 8080)) .toCompletable() .subscribe(CompletableHelper.toObserver(future));
@Override public void start(Future<Void> future) throws Exception { // Create a simple HTTP service (using Vert.x Web Router) and publish it in the service discovery. // As we want to complete the deployment when the service is exposed (asynchronous operation), we use a // `Future` argument to indicate when the deployment is completed. This allows deploying the other verticle // after the deployment completion of this one. // Create an instance of service discovery this.discovery = ServiceDiscovery.create(vertx); // Simple HTTP API using Vert.x Web Router. Router router = Router.router(vertx); router.get("/").handler(rc -> rc.response().end("OK")); router.get("/greetings").handler(rc -> rc.response().end("Hello world")); router.get("/greetings/:name").handler(rc -> rc.response().end("Hello " + rc.pathParam("name"))); vertx.createHttpServer() .requestHandler(router::accept) .rxListen(8080) // When the server is ready, we publish the service .flatMap(this::publish) // Store the record, required to un-publish it .doOnSuccess(rec -> this.record = rec) .toCompletable() .subscribe(toObserver(future)); }
.rxListen() .subscribe(ok -> { LOGGER.info("Knot.x HTTP Server started. Listening on port {}",
httpServer.rxListen().subscribe(ok -> { LOGGER.info("Knot.x HTTP Server started. Listening on port {}", options.getServerOptions().getPort());
httpServer.rxListen().subscribe(ok -> { LOGGER.info("Knot.x HTTP Server started. Listening on port {}", options.getServerOptions().getPort());
.rxListen(8080) .ignoreElement(); return completable;