Add additional application configuration to magix server

This commit is contained in:
Alexander Nozik 2021-07-06 14:02:51 +03:00
parent 1cf7058778
commit 64d3f04469

View File

@ -1,5 +1,6 @@
package ru.mipt.npm.magix.server package ru.mipt.npm.magix.server
import io.ktor.application.Application
import io.ktor.network.selector.ActorSelectorManager import io.ktor.network.selector.ActorSelectorManager
import io.ktor.network.sockets.aSocket import io.ktor.network.sockets.aSocket
import io.ktor.server.cio.CIO import io.ktor.server.cio.CIO
@ -33,12 +34,14 @@ public fun CoroutineScope.launchMagixServerRawRSocket(
/** /**
* A combined RSocket/TCP server * A combined RSocket/TCP server
* @param applicationConfiguration optional additional configuration for magix loop server
*/ */
public fun CoroutineScope.startMagixServer( public fun CoroutineScope.startMagixServer(
port: Int = DEFAULT_MAGIX_HTTP_PORT, port: Int = DEFAULT_MAGIX_HTTP_PORT,
buffer: Int = 100, buffer: Int = 100,
enableRawRSocket: Boolean = true, enableRawRSocket: Boolean = true,
enableZmq: Boolean = true enableZmq: Boolean = true,
applicationConfiguration: Application.(MutableSharedFlow<GenericMagixMessage>) -> Unit = {}
): ApplicationEngine { ): ApplicationEngine {
val logger = LoggerFactory.getLogger("magix-server") val logger = LoggerFactory.getLogger("magix-server")
val magixFlow = MutableSharedFlow<GenericMagixMessage>( val magixFlow = MutableSharedFlow<GenericMagixMessage>(
@ -66,6 +69,7 @@ public fun CoroutineScope.startMagixServer(
return embeddedServer(CIO, host = "localhost", port = port) { return embeddedServer(CIO, host = "localhost", port = port) {
magixModule(magixFlow) magixModule(magixFlow)
applicationConfiguration(magixFlow)
}.apply { }.apply {
start() start()
} }