ReactJs & SocketIO: потерянная полезная нагрузка - PullRequest
0 голосов
/ 07 мая 2020

У меня есть 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.

Я подозреваю, что происходит какое-то состояние гонки, но я не уверен, с чего начать поиск. Любые советы приветствуются. Спасибо.

...