mirror of
https://github.com/InsanusMokrassar/MicroUtils.git
synced 2024-06-17 15:25:13 +00:00
34 lines
988 B
Kotlin
34 lines
988 B
Kotlin
package dev.inmo.micro_utils.ktor.server
|
|
|
|
import io.ktor.application.Application
|
|
import io.ktor.server.cio.CIO
|
|
import io.ktor.server.engine.*
|
|
import kotlin.random.Random
|
|
|
|
fun <TEngine : ApplicationEngine, TConfiguration : ApplicationEngine.Configuration> createKtorServer(
|
|
engine: ApplicationEngineFactory<TEngine, TConfiguration>,
|
|
host: String = "localhost",
|
|
port: Int = Random.nextInt(1024, 65535),
|
|
block: Application.() -> Unit
|
|
): TEngine {
|
|
val env = applicationEngineEnvironment {
|
|
module(block)
|
|
connector {
|
|
this@connector.host = host
|
|
this@connector.port = port
|
|
}
|
|
}
|
|
return embeddedServer(engine, env)
|
|
}
|
|
|
|
/**
|
|
* Create server with [CIO] server engine without starting of it
|
|
*
|
|
* @see ApplicationEngine.start
|
|
*/
|
|
fun createKtorServer(
|
|
host: String = "localhost",
|
|
port: Int = Random.nextInt(1024, 65535),
|
|
block: Application.() -> Unit
|
|
): ApplicationEngine = createKtorServer(CIO, host, port, block)
|