Попытка реализовать какой-нибудь клиентский пинг:
socket.onopen = () => {
let pinger = new Promise((resolve, reject) => {
setInterval(() => {
socket.send(JSON.stringify({ "type": "ping" }))
socket.onmessage = ({ data }) => {
let jsonMessage = JSON.parse(data)
if (jsonMessage.type == 'PING') {
resolve()
} else if (jsonMessage.type !== 'PING') {
reject()
}
}
}, 10000)
})
pinger.then(() => console.log('resolved')).catch(() => console.log('error'))
}
Столкнулся с проблемой здесь, как бы он узнал, если socket.send()
успешно или нет?Идея заключается в том, что если я отправляю объект JSON и не получаю ответа от сервера, то запускаю метод connect()
, если ответ возвращается, тогда я ничего не буду делать.
Обновил код, теперьошибка появляется в консоли только один раз, хотя она должна появляться каждые 10 секунд.