канал Android обновляет данные несколько раз, как только данные наблюдаются
У меня есть чат, когда я отправляю сообщение при нажатии кнопки, кнопка привязана к ChatViewModel
работают так:
fun onSendButtonClick(view: View) {
if (userMsgtext.isEmpty()) {
return
}
Coroutines.main {
repository.sendTextFromUser(userMsgtext)
userMsgtext = ""
val payload: Payload = repository.catchmyMsg()
println("My Message: $payload")
val payloadmyMsg = JSONObject(payload)
val sender = payloadmyMsg.get("sender").toString()
val msg = payloadmyMsg.get("body").toString()
val time = payloadmyMsg.get("time").toString()
val myMsg = Message(sender, msg, time)
addmsgItem(listOf(myMsg))
}
}
Здесь ChatRepository
функция:
fun sendTextFromUser(MsgTxt: String) {
val payload = hashMapOf(
"body" to MsgTxt
)
msg_channel.also {
it.push("new:msg", payload)
}.on("new:msg") { message ->
val payload = JSONObject(message.payload)
println("PAYLOAD: $payload")
val sender = payload.get("sender").toString()
val msg = payload.get("body").toString()
val time = payload.get("time").toString()
setmyMsg(message.payload)
println("*** PAYLOAD *** $sender $msg $time")
}
}
Если msg_channel выполняет все 3-4 раза после нажатия кнопки отправки, как мне это исправить?