Почему обработчик socket io параллельно обрабатывает событие в рамках одного соединения
Как заставить обрабатывать события от одного клиента синхронно.
socket.on('quest', async (data, callback) => {
await sleep(1000);
console.log(new Date().getTime());
let zadanie = await pool.query("SELECT * FROM `quest` WHERE `id`=1 ").then(res =>{ return res['0'];});
await pool.query("UPDATE `quest` SET `lvl`=`lvl`+1 WHERE `id`='"+zadanie.id+"' ");
return callback({s:zadanie});
});
сейчас получается что, если отправить 10 запросов в один момент - будет задержка перед выводом в консоль, но время будет одинаковое с разницей 1-2 мс. Нужно что бы он выполнялся не параллельно в рамках одного соединения.
рабочий код на сервере чуть другой, и проблема в том, что некоторые специально ставят через консоль скорость 1кбит, отправляют кучу запросов, потом выставляют нормальную скорость и сервер отдает не обновленные данные. например уровень задания будет всегда одинаков