【问题标题】:How do I get the server ip/port for a ktor service?如何获取 ktor 服务的服务器 IP/端口?
【发布时间】:2021-05-09 21:21:36
【问题描述】:

我希望编写一个 Ktor 功能,该功能应该使用 DNS-SD/mDNS 在本地网络上宣布该服务。我希望能够在 ktor 应用程序启动时自动启动通知,并在 ktor 应用程序停止时停止它。我已经使用ApplicationStartedApplicationStopped 事件编写了执行此操作的代码。此代码有效。

但是,除了读取配置之外,我无法从 ktor 获取 IP 地址/端口。

有没有什么方法可以监听/列出 ktor 当前使用的连接器?

【问题讨论】:

    标签: ktor


    【解决方案1】:

    您可以通过BaseApplicationEngine 实例访问connectors

    val server = embeddedServer(Netty, 9091) {}
    println(server.environment.connectors)
    

    或将environment 转换为ApplicationEngineEnvironment

    fun Application.module(testing: Boolean = false) {
        (environment as ApplicationEngineEnvironment).connectors.forEach { connector ->
            println("${connector.host}:${connector.port}")
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-06-17
      • 1970-01-01
      • 2019-12-08
      • 2012-08-13
      • 2015-01-29
      • 2010-11-16
      相关资源
      最近更新 更多