javascript — Как отслеживать активные YT-плееры, которые есть у пользователя на сайте, даже если компьютер выключается?

Я создаю приложение, которое подсчитывает, сколько времени пользователь тратит на просмотр видео YT на моем сайте. По времени, позже они получат какие-то награды.

Здесь есть проблема безопасности: как я могу помешать им одновременно наблюдать за двумя игроками? Я пытался использовать решения, такие как:

  • Локальное хранилище
  • Хранение сессий
  • PHP $_SESSION
  • Глобальные переменные

И ничего не сработало. После некоторого времени исследований я понял, что это всего лишь front-end и я не могу передать эту информацию на другие компьютеры, браузеры и т. д.

Итак, я дал шанс базе данных. Его нельзя так легко изменить, как «Локальное хранилище» или «Сеансовое хранилище», однако у него все еще есть некоторые проблемы, которые я перечислю ниже.


Изображение пользователь заходит на сайт и начинает воспроизведение видео. С помощью YT Embed API Я запрограммировал так, чтобы записи базы данных изменились на «active_players» 1. И это число не может быть больше 1. Все работало, как ожидалось, пока не произошло одно:

Я не могу вычесть 1 из 1, если пользователь закрывает браузер, компьютер внезапно выключается или вкладка браузера закрывается.

Да, я мог бы бросить окно предупреждения, используя window.onbeforeunload метод, но это можно легко обойти, просто установив флажок, чтобы блокировать эти типы сообщений. Это также не решит неожиданное поведение компьютера, такое как выключение и т. Д.


У меня есть идея, как я мог бы сделать это теоретически:

Прежде всего, отправьте AJAX запрашивает базу данных сервера каждую 1 секунду и что-то делает с записями базы данных (обновляет или вставляет и удаляет некоторые данные).

Когда используешь cron jobs каждая 1-секундная проверка результатов базы данных, если они все еще обновляются или нет.

Я не знаю точно, как это должно быть сделано, и я впервые работаю с такими вещами.


Похожий пост на мой: Как узнать, находится ли пользователь на сайте или в автономном режиме?

Может быть, у нас уже есть намного лучшие альтернативы, которых я пока не знаю 🙂 Помощь будет принята с благодарностью. Спасибо.

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]