In my project I have a module(ktor server project).
I need to start the server when app launch. What I tried and my codes are below.
MainActivity.kt
class MainActivity : AppCompatActivity() {
private val ktorServer = KtorServer()
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_camera)
ktorServer.startServer()
}
override fun onDestroy() {
super.onDestroy()
ktorServer.stopServer()
}
}
KtorServer.kt
class KtorServer {
private var server: ApplicationEngine? = null
fun startServer() {
server = embeddedServer(Netty, port = 8080) {
module()
}.start(wait = false)
//embeddedServer(Netty, port = 8080,host = "127.0.0.1", module = Application::module).start(wait = false)
}
private fun Application.module() {
routing {
get("/") {
call.respondText("Hello, Ktor!", ContentType.Text.Plain)
}
}
}
fun stopServer() {
server?.stop(1000, 10000)
}
}
build.gradle
def ktor_version = '2.0.0'
implementation("io.ktor:ktor-server-core:$ktor_version")
implementation("io.ktor:ktor-server-netty:$ktor_version")
implementation("io.ktor:ktor-server-content-negotiation:$ktor_version")
implementation("io.ktor:ktor-serialization-kotlinx-json:$ktor_version")