Я создаю приложение, в котором два пользователя могут смотреть видео на YouTube в реальном времени с помощью socket.io. Теоретически все пользователи будут также использовать элементы управления видеопроигрывателем, но бесконечное число l oop возникает, если один из пользователей нажимает кнопку воспроизведения / паузы несколько раз в быстрой последовательности. Как я могу предотвратить это?
Код сервера:
socket.on("player status", playerStatus => {
socket.broadcast.emit("status", playerStatus)
})
Клиентский код:
useEffect(() => {
socketRef.current = io.connect('/');
socketRef.current.on("status", status => {
if (status === 1) {
youtubePlayer.current.playVideo();
} else {
youtubePlayer.current.pauseVideo();
}
})
}, []);
function onPlayerStateChange(e) {
if (e.data === 1 || e.data === 2) {
socketRef.current.emit("player status", e.data)
}
}