канал 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 раза после нажатия кнопки отправки, как мне это исправить?

0 ответов

Другие вопросы по тегам