Buzzer/src/main/kotlin/de/pheerai/buzzer/handlers/handlePlayerSocket.kt

23 lines
698 B
Kotlin

package de.pheerai.buzzer.handlers
import de.pheerai.buzzer.data.PlayerSocket
import de.pheerai.buzzer.data.SessionStorage
import io.ktor.websocket.*
import kotlinx.coroutines.isActive
import org.slf4j.Logger
suspend fun WebSocketSession.handlePlayerSocket(log: Logger) {
SessionStorage.playerSessions.add(PlayerSocket(this))
for (frame in incoming) {
when (frame) {
is Frame.Text -> {
val text = frame.readText()
log.info("Username: $text")
SessionStorage.gameModeratorSessions.filter { it.session.isActive }
.forEach { it.session.send(text) }
}
else -> {}
}
}
}