Hamza Maqsood
01/17/2022, 2:29 PMAleksei Tirman [JB]
01/18/2022, 7:50 AMHamza Maqsood
01/18/2022, 8:40 AMAleksei Tirman [JB]
01/18/2022, 10:05 AMSendChannel<Frame>
object that internally encodes event in a Frame
. Here is an example:
suspend fun SendChannel<Frame>.emit(event: String, frame: Frame) {
val packet = BytePacketBuilder().apply {
append(event)
writeFully(frame.data)
}.build()
send(Frame.Binary(true, packet.readBytes()))
}
And the calling side will look like this:
client.webSocket("<ws://0.0.0.0:4444/socket>") {
outgoing.emit("event", Frame.Text("hello"))
}
Hamza Maqsood
01/18/2022, 11:01 AMAleksei Tirman [JB]
01/19/2022, 8:12 AMHamza Maqsood
01/19/2022, 8:20 AMval packet = BytePacketBuilder().apply {
append(event)
writeFully(frame.data)
}.build()
socket?.incoming
?.receiveAsFlow()
?.filter { it is Frame.Binary }
now how to separate data and event from this stream?
because the length will be different for the event stringAleksei Tirman [JB]
01/19/2022, 8:25 AMHamza Maqsood
01/19/2022, 8:31 AMAleksei Tirman [JB]
01/19/2022, 8:59 AMHamza Maqsood
01/19/2022, 9:00 AM