Как отследить активных игроков YT на сайте, даже если компьютер выключается? - PullRequest
0 голосов
/ 09 июня 2018

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

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

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

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

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


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

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

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


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

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

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

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


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

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

...