Привет, конфигурация vanilla ktor Netty не позволяет использовать длинные URL-адреса, вам необходимо настроить размеры буфера HttpServerCodec. Как получить к этому доступ в приложении koin-ktor?
Как настроить NettyApplicationEngine в проекте koin-ktor?
Ответы (1)
Я придумал хреновый способ. Я перешел на использование собственного 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)
}
}
person
Tom Larkworthy
schedule
21.07.2020