У меня есть 2 интерфейсных приложения (назовем их A и B) и 1 сервер, который работает как чат:
Процесс: A отправляет на сервер событие, содержащее «полезную нагрузку». , и сервер генерирует другое событие, которое передает полезные данные в B.
Прямо сейчас A и сервер генерируют правильные данные. Однако в B он иногда пропускает полезную нагрузку.
Я говорю о 80 журналах чего-то, я бы пропустил 1 или 2 журнала между ними. Похоже, здесь тоже нет шаблона, поэтому я не уверен, что происходит.
Вот код B:
//lots of stuff up here
const [logCount, setLogCount] = useState(0);
const [log, setLogs] = useState([]);
useEffect(() => {
socket.on('payload', ({ logs }) => {
const arr = [...log, logs]
setLogCount(logCount + 1);
setLogs(arr);
})
return () => {
socket.off('payload');
}
}, [log])
//more stuff down here
...
Остальная часть приложения отображается нормально, поэтому я опускаю пока эта часть.
Некоторые примеры. В течение 15 минут A генерировал событие 100 раз, и сервер также генерировал 100 раз. Но B получит 1-30, 32-100.
Я подозреваю, что происходит какое-то состояние гонки, но я не уверен, с чего начать поиск. Любые советы приветствуются. Спасибо.