如何输出服务器已经启动

How to output that the server has been started

我有以下代码,它将启动一个 http 服务器:

class MainVerticle : CoroutineVerticle() {

  override suspend fun start() {

    val server = vertx.createHttpServer()

    val router = Router.router(vertx)
    router.route("/api/genders*")
      .subRouter(GenderApi(vertx).create())

    server.requestHandler(router)
      .listen(8080)
      .await()

  }
}

现在,我想输出,如果服务器已经成功启动或失败(如果端口已被占用)。

如果没有协程,代码将是:

class MainVerticle : AbstractVerticle() {

    override fun start(startPromise: Promise<Void>) {
        val server = vertx.createHttpServer()

        val router = Router.router(vertx)

        server.requestHandler(router).listen(8888) { http ->
            if (http.succeeded()) {
                startPromise.complete()
                println("HTTP server started on port 8888")
            } else {
                println(http.cause())
                startPromise.fail(http.cause());
            }
        }
    }
}

这里我输出的是服务器启动成功与否

如果你使用协程,添加一个try/catch块:

class MainVerticle : CoroutineVerticle() {

  override suspend fun start() {

    val server = vertx.createHttpServer()

    val router = Router.router(vertx)
    router.route("/api/genders*")
      .subRouter(GenderApi(vertx).create())

    try {
      server.requestHandler(router)
        .listen(8080)
        .await()
      println("HTTP server started on port 8888")
    } catch (e: Exception) {
      println(http.cause())
      throw e
    }

  }
}