Получение данных с разных вебсокетов используя 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 получить я смог


Ответы (0 шт):