Set replay=0 in messageBuffer

This commit is contained in:
2026-09-15 03:06:22 +01:00
parent 4368315657
commit 1599a20583
@@ -21,7 +21,7 @@ import kotlin.reflect.cast
class MessageReader(socket: Socket, scope: CoroutineScope, enableLogging: Boolean = false) : MessageIO(socket, scope) { class MessageReader(socket: Socket, scope: CoroutineScope, enableLogging: Boolean = false) : MessageIO(socket, scope) {
private lateinit var receive: ByteReadChannel private lateinit var receive: ByteReadChannel
private val messageBuffer = MutableSharedFlow<ServerMessage>(16, 64) private val messageBuffer = MutableSharedFlow<ServerMessage>(0, 64)
val sharedMessageBuffer = messageBuffer.asSharedFlow() val sharedMessageBuffer = messageBuffer.asSharedFlow()
val parser = MessageParser(incomingMessages, enableLogging) val parser = MessageParser(incomingMessages, enableLogging)
private val logger = if (enableLogging) KotlinLogging.logger {} else KotlinLogging.logger(NOPLogger.NOP_LOGGER) private val logger = if (enableLogging) KotlinLogging.logger {} else KotlinLogging.logger(NOPLogger.NOP_LOGGER)
@@ -31,8 +31,8 @@ class MessageReader(socket: Socket, scope: CoroutineScope, enableLogging: Boolea
parser.start() parser.start()
} }
scope.launch { scope.launch {
for (msg in parser.incomingParsedMessages) for (msg in parser.incomingParsedMessages) // receive parsed messages
messageBuffer.emit(msg) messageBuffer.emit(msg) // send messages down shared flow
} }
} }
@@ -41,8 +41,7 @@ class MessageReader(socket: Socket, scope: CoroutineScope, enableLogging: Boolea
receive = socket.openReadChannel() receive = socket.openReadChannel()
while (true) { while (true) {
val line = receive.readLineStrict() ?: break // >:( no LineEnding option for just CRLF? charlatans... val line = receive.readLineStrict() ?: break // >:( no LineEnding option for just CRLF? charlatans...
logger.debug { "Receive: $line" } incomingMessages.send(line) // send raw messages to parser
incomingMessages.send(line)
} }
} }
} }