rimajon-ktor/src/JuegoWS.kt

35 lines
1022 B
Kotlin
Raw Normal View History

package dev.araozu
import com.google.gson.Gson
import io.ktor.http.cio.websocket.*
import io.ktor.routing.*
import io.ktor.websocket.*
val gson = Gson()
data class DatosDescarte(val idJuego: String, val idUsuario: String, val carta: Int)
fun Routing.juegows() {
webSocket("/juego") {
for (frame in incoming) when (frame) {
is Frame.Text -> {
val sol = gson.fromJson(frame.readText(), Conexion::class.java)
when (sol.operacion) {
"conectar" -> {
val datos = gson.fromJson(sol.datos, ConexionNueva::class.java)
GestorJuegos.conectarASala(datos.idJuego, datos.idUsuario, this)
}
"descarte" -> {
val datos = gson.fromJson(sol.datos, DatosDescarte::class.java)
GestorJuegos.manejarDescarte(datos.idJuego, datos.idUsuario, datos.carta)
}
}
}
}
}
}