Получение данных с разных вебсокетов используя flow и broadcastchannel (Kotlin, Ktor)
class UserConnect(
var id:String = "",
var connection: DefaultWebSocketSession? = null,
val channel : BroadcastChannel<Frame> = BroadcastChannel<Frame>(1)
)
var UserConnections = Collections.synchronizedList<UserConnect>(mutableListOf())
suspend fun performRequest(id: Int, frames: BroadcastChannel<Frame>): Connections {
delay(5000)
//frames надо как то преобразовать в нормальный вид чтобы это был текст, frames и есть суть вопроса
return Connections(id, frames.toString())
}
routing {
webSocket("/all") {
GlobalScope.launch() {
while (true) {
try {
UserConnections.asFlow().map { value ->
value.channel.asFlow()
performRequest(value.id.toInt(), value.channel)
}.collect { response ->
send(response.toString())
println(response)
}
} catch (e: Throwable) {
println("Error $e")
}
}
}.join()
}
(В этом коде мне надо сделать как бы око саурона только он видит все что пишут юзеры и их id)
Моя проблема в том что не могу получать все вводы юзеров то есть все что они вводят
а их id получить я смог