Я пытаюсь построить индикатор набора текста. Все отлично работает. Но я обнаружил, что запись в поле ввода слишком медленная.
Я использую вот так
<Input type="textarea" :autosize="{minRows: 2, maxRows: 6}" placeholder="Type a message..."
v-model="u.myMsg" @on-enter="sendMsg($event,u)" @on-focus="sendSeenInfo(u)"
@on-keypress="run(true, u.con_id, u.user_id)" @on-blur="stopped(false,u.con_id, u.user_id)"
></Input>
Я использую vue.js. Так что эти две функции работают, как и ожидалось, но делают набор текста медленным.
Внутри функции запуска я посылаю несколько событий сокета.
Есть идеи, как мне сделать это лучше?
Спасибо
EDIT
метод запуска
run(type,con_id, uid){
const obj = {
con_id: con_id,
isTyping: true
}
this.sendTypingNoti(1, obj, uid)
},
sendTypingNoti
метод
sendTypingNoti(type, value, uid){
const ws = adonis.Ws()
ws.connect()
const chat = ws.subscribe(`noti:${uid}`)
chat.on('ready', () => {
const data = {
type: type,
input: value
}
chat.emit('message', data)
})
},
метод остановки тоже такой же.