List of usage examples for io.vertx.core.http HttpServer close
Future<Void> close();
From source file:io.nonobot.core.impl.BotImpl.java
License:Apache License
public static Bot createShared(Vertx vertx, BotOptions options, Handler<AsyncResult<Void>> completionHandler) { BotImpl bot = bots.computeIfAbsent(new Key(vertx, options.getName()), key -> new BotImpl(vertx, options.getName())); HttpServer server; if (options.getHttpServerOptions() != null) { server = vertx.createHttpServer(options.getHttpServerOptions()); server.requestHandler(bot.webRouter::accept); server.listen(ar -> {/*w w w.j a v a 2 s . c om*/ if (ar.succeeded()) { completionHandler.handle(Future.succeededFuture()); } else { completionHandler.handle(Future.failedFuture(ar.cause())); } }); } else { server = null; completionHandler.handle(Future.succeededFuture()); } return new Bot() { @Override public Vertx vertx() { return bot.vertx(); } @Override public ChatRouter chatRouter() { return bot.chatRouter(); } @Override public Router webRouter() { return bot.webRouter(); } @Override public String name() { return bot.name(); } @Override public void close() { boolean open = bot.closed; bot.close(); if (open && server != null) { server.close(); } } }; }