Как я могу использовать каналы сопрограмм вместе с построителем сопрограмм Liveata (androidx.lifecycle:lifecycle-livedata-ktx architecture component)
для непрерывного прослушивания сообщений, созданных из библиотеки веб-сокетов на ReceiveChannel<String>
?
Моя первая мысль - реализовать это так
val user: LiveData<String> = liveData {
while(true) {
val data = myWebsocketChannel.receive() //Channel suspend function
emit(data)
}
}
Но это кажется немного "не-котлиным", и мое чутье подсказывает мне, что есть способ лучше решить эту проблему. Есть ли лучший способ обработки данных публикации, однажды полученных из канала сопрограмм?