Обработка событий при использовании youtube iframe и socket.io - PullRequest
0 голосов
/ 01 августа 2020

Я создаю приложение, в котором два пользователя могут смотреть видео на 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)
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...