我希望编写一个 Ktor 功能,该功能应该使用 DNS-SD/mDNS 在本地网络上宣布该服务。我希望能够在 ktor 应用程序启动时自动启动宣布,并在 ktor 应用程序停止时停止它。我已经编写了使用 func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent
notification: UNNotification,
withCompletionHandler completionHandler:
@escaping (UNNotificationPresentationOptions) ->
Void) {
let userInfo:[AnyHashable:Any] = notification.request.content.userInfo
print("\(userInfo)")
completionHandler([])
}
和 ApplicationStarted
事件执行此操作的代码。此代码有效。
但是,除了读取配置之外,我找不到从 ktor 获取什么 IP 地址/端口的方法。
有没有办法监听/列出 ktor 当前使用的连接器?
答案 0 :(得分:0)
您可以通过 connectors
实例访问 BaseApplicationEngine
:
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}")
}
}