如何在koin-ktor项目中自定义NettyApplicationEngine



Hi香草ktor Netty配置不允许长URL,您需要自定义HttpServerCodec缓冲区大小。如何在koin-ktor应用程序中访问此项?

我想出了一个糟糕的方法。我改为使用自己的main,它基本上是Netty.EngineMain.的一个分支

// Copy and paste of the io.ktor.server.netty.EngineMain
fun main(args: Array<String>) {
val applicationEnvironment = commandLineEnvironment(args)
NettyApplicationEngine(applicationEnvironment, { loadConfiguration(applicationEnvironment.config) }).start()
}
// Copy and paste of the io.ktor.server.netty.EngineMain
private fun NettyApplicationEngine.Configuration.loadConfiguration(config: ApplicationConfig) {
val deploymentConfig = config.config("ktor.deployment")
loadCommonConfiguration(deploymentConfig)
deploymentConfig.propertyOrNull("requestQueueLimit")?.getString()?.toInt()?.let {
requestQueueLimit = it
}
deploymentConfig.propertyOrNull("shareWorkGroup")?.getString()?.toBoolean()?.let {
shareWorkGroup = it
}
deploymentConfig.propertyOrNull("responseWriteTimeoutSeconds")?.getString()?.toInt()?.let {
responseWriteTimeoutSeconds = it
}
// Allow long URLs to be accepted
httpServerCodec = {
HttpServerCodec(1048576, 1048576, 1048576)
}
}

最新更新