Я попытался реализовать чат-приложение, используя соединение сокета в Kotlin и библиотеку TornadoFX, чтобы сделать GUI. Проблема возникает, когда я пытаюсь запустить клиент, потому что он продолжает ждать сообщения от сервера, хотя я помещаю этот код, который обновляет метку и получает сообщение внутри runAsyn c. Я красил документацию TornadoFX и видел видео на YouTube, но не могу найти решение. Я знаю, что проблема в том, что программа застряла в этом блоке, но не могу понять, как это сделать.
class MyFirstView: View("Chat"){
var input: TextField by singleAssign()
var test = SimpleStringProperty()
val client: Client by inject()
init {
client.connect()
val t = thread(true) {
while (true) {
random = client.getMessage()
println(random)
Platform.runLater { test.set(random) }
}
}
}
override val root = vbox {
hbox {
label(test) {
bind(test)
}
}
hbox {
label("Write here some text")
input = textfield()
}
hbox {
button("Send") {
action{
client.writer.println(input.text)
}
}
}
}
}