diff --git a/src/main/kotlin/com/shr4pnel/ferretirc/net/MessageReader.kt b/src/main/kotlin/com/shr4pnel/ferretirc/net/MessageReader.kt index 29f0d3d..263efab 100644 --- a/src/main/kotlin/com/shr4pnel/ferretirc/net/MessageReader.kt +++ b/src/main/kotlin/com/shr4pnel/ferretirc/net/MessageReader.kt @@ -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(16, 64) + private val messageBuffer = MutableSharedFlow(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 } } }