LevelUp feature.
This commit is contained in:
parent
84515e6d57
commit
16b2b49f03
75 changed files with 2532 additions and 777 deletions
|
|
@ -1,17 +0,0 @@
|
|||
package com.pixelized.server.lwa.extention
|
||||
|
||||
import com.pixelized.shared.lwa.protocol.websocket.Message
|
||||
import io.ktor.websocket.Frame
|
||||
import io.ktor.websocket.readText
|
||||
import kotlinx.serialization.json.Json
|
||||
|
||||
|
||||
fun Json.decodeFromFrame(frame: Frame.Text): Message {
|
||||
val json = frame.readText()
|
||||
return decodeFromString<Message>(json)
|
||||
}
|
||||
|
||||
fun Json.encodeToFrame(message: Message): Frame {
|
||||
val json = encodeToString(message)
|
||||
return Frame.Text(text = json)
|
||||
}
|
||||
|
|
@ -204,6 +204,5 @@ class CampaignService(
|
|||
)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
@ -1,8 +1,6 @@
|
|||
package com.pixelized.server.lwa.server
|
||||
|
||||
|
||||
import com.pixelized.server.lwa.extention.decodeFromFrame
|
||||
import com.pixelized.server.lwa.extention.encodeToFrame
|
||||
import com.pixelized.server.lwa.server.rest.alteration.getActiveAlteration
|
||||
import com.pixelized.server.lwa.server.rest.alteration.getAlteration
|
||||
import com.pixelized.server.lwa.server.rest.alteration.putActiveAlteration
|
||||
|
|
@ -17,6 +15,7 @@ import com.pixelized.server.lwa.server.rest.character.getCharacter
|
|||
import com.pixelized.server.lwa.server.rest.character.getCharacters
|
||||
import com.pixelized.server.lwa.server.rest.character.putCharacter
|
||||
import com.pixelized.shared.lwa.SERVER_PORT
|
||||
import com.pixelized.shared.lwa.protocol.websocket.Message
|
||||
import com.pixelized.shared.lwa.sharedModuleDependencies
|
||||
import io.ktor.serialization.kotlinx.json.json
|
||||
import io.ktor.server.application.install
|
||||
|
|
@ -35,6 +34,7 @@ import io.ktor.server.websocket.pingPeriod
|
|||
import io.ktor.server.websocket.timeout
|
||||
import io.ktor.server.websocket.webSocket
|
||||
import io.ktor.websocket.Frame
|
||||
import io.ktor.websocket.readText
|
||||
import kotlinx.coroutines.channels.consumeEach
|
||||
import kotlinx.coroutines.launch
|
||||
import kotlinx.coroutines.runBlocking
|
||||
|
|
@ -82,15 +82,22 @@ class LocalServer {
|
|||
val job = launch {
|
||||
// send local message to the clients
|
||||
engine.webSocket.collect { message ->
|
||||
val frame = json.encodeToFrame(message)
|
||||
send(frame)
|
||||
val data = json.encodeToString(message)
|
||||
val frame = Frame.Text(text = data)
|
||||
try {
|
||||
send(frame)
|
||||
} catch (exception : Exception) {
|
||||
// TODO
|
||||
println("WebSocket exception: ${exception.localizedMessage}")
|
||||
}
|
||||
}
|
||||
}
|
||||
runCatching {
|
||||
// watching for clients incoming message
|
||||
incoming.consumeEach { frame ->
|
||||
if (frame is Frame.Text) {
|
||||
val message = Json.decodeFromFrame(frame = frame)
|
||||
val data = frame.readText()
|
||||
val message = json.decodeFromString<Message>(data)
|
||||
// log the message
|
||||
engine.handle(message)
|
||||
// broadcast to clients the message
|
||||
|
|
@ -98,6 +105,7 @@ class LocalServer {
|
|||
}
|
||||
}
|
||||
}.onFailure { exception ->
|
||||
// TODO
|
||||
println("WebSocket exception: ${exception.localizedMessage}")
|
||||
}.also {
|
||||
job.cancel()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue