Set replay=0 in messageBuffer
This commit is contained in:
@@ -21,7 +21,7 @@ import kotlin.reflect.cast
|
||||
|
||||
class MessageReader(socket: Socket, scope: CoroutineScope, enableLogging: Boolean = false) : MessageIO(socket, scope) {
|
||||
private lateinit var receive: ByteReadChannel
|
||||
private val messageBuffer = MutableSharedFlow<ServerMessage>(16, 64)
|
||||
private val messageBuffer = MutableSharedFlow<ServerMessage>(0, 64)
|
||||
val sharedMessageBuffer = messageBuffer.asSharedFlow()
|
||||
val parser = MessageParser(incomingMessages, enableLogging)
|
||||
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()
|
||||
}
|
||||
scope.launch {
|
||||
for (msg in parser.incomingParsedMessages)
|
||||
messageBuffer.emit(msg)
|
||||
for (msg in parser.incomingParsedMessages) // receive parsed messages
|
||||
messageBuffer.emit(msg) // send messages down shared flow
|
||||
}
|
||||
}
|
||||
|
||||
@@ -41,8 +41,7 @@ class MessageReader(socket: Socket, scope: CoroutineScope, enableLogging: Boolea
|
||||
receive = socket.openReadChannel()
|
||||
while (true) {
|
||||
val line = receive.readLineStrict() ?: break // >:( no LineEnding option for just CRLF? charlatans...
|
||||
logger.debug { "Receive: $line" }
|
||||
incomingMessages.send(line)
|
||||
incomingMessages.send(line) // send raw messages to parser
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user