Подключаюсь к websocket серверу в качестве socket.io клиента, при этом параллельно приходит информация от другого сервера (через pusher), которую сначала парсю, потом по websocket соединению (через socket.emit) отправляю эту информацию. При этом могу отправить 1 запрос в секунду, а могу к примеру 20, из-за этого - в websocket приходит ошибка, о том, что запросов много. Я сделал так - подключился к 2м обработчикам, нужной мне информации и ошибкам. Нужную же информацию, от другого сервера (pusher), я добавляю в массив, оттуда же я ее отправляю к websocket (socket.emit). Если получаю ошибку - жду и вновь отправляю, если получаю не ошибку - из массива убираю элемент и проверяю дальше. При этом - нужно проверять массив, дабы понимать - пустой он или нет, из-за этого я вызываю еще 1 функцию, которую проверяю каждые 5мс (это для меня важно, те же 100мс - будет уже долго). Отсюда вопрос - можно ли сделать как-то более правильно и как сильно в целом это влияет на всю ситуацию, если процессор нагружает на пол процента?
let array = []
let start = true
setInterval(checkSocket, 5)
function checkSocket() {
if (array.length > 0 && start == true) {
start = false
socket.emit('123')
}
}
socket.on('joined', () => {
console.log('подключился')
});
socket.on('error', function incoming(err) {
setTimeout(() => socket.emit('123'), 200);
})
socket.on('message', function incoming(mes) {
console.log(mes)
array.shift()
start = true
})