Удобный видео обзор с блокировкой - PullRequest
1 голос
/ 04 января 2011

У нас есть система jquery / php / mysql, которая позволяет пользователю входить в систему и просматривать видео, созданные системой для онлайн-просмотра. Когда пользователь начинает просмотр видео, оно помечается как таковое. Но теперь мы загнали себя в проблему классического приложения на основе браузера, заключающегося в том, что пользователь уходит или закрывает браузер без завершения обзора. Это видео затем войдет в состояние неопределенности: его постоянно проверяют, но оно никогда не завершается и никогда не возвращается в очередь.

Опции у нас есть:

  • Создайте сервис (который у нас уже есть), чтобы найти сеансы проверки, находящиеся за пределами продолжительности, и сбросить их обратно в очередь.
  • Сбрасывать сеансы просмотра за пределами продолжительности, когда этот пользователь входит в систему. По сути, если пользователь блокирует видео для просмотра, оно будет разблокировано при следующем входе в систему.
  • Мне было предложено использовать продолжительность сеанса php / apache, а по истечении - сбросить все ожидающие проверки задания. Я даже не знаю, где искать это для реализации, так как это один проект на общем сервере, поэтому это не должна быть конфигурация apache, но для механизма сброса необходимо знать учетные данные базы данных, чтобы можно было его сбросить. ..
  • Худшее решение, которое все ненавидят, - это запретить пользователю переходить с помощью javascript, спрашивая: «Вы уверены?!»

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

Ответы [ 3 ]

1 голос
/ 04 января 2011

Есть два хороших варианта, которые не облагают налогом ваш сервер.Либо:

  1. Запускайте задание cron каждый час, ища сеансы проверки, которые находятся за пределами границы продолжительности.Это имеет преимущество в прозрачности для конечного пользователя.Но можно прервать активный сеанс, если вы не будете осторожны (предположим, пользователь работает на нескольких вкладках).

  2. Запретить пользователям переходить с JS.Честно говоря, это то, что я бы сделал, так как пользователь просматривает видео (если бы он только просматривал его, это было бы плохо, но, поскольку они знают, что должны действовать, это нормально).Просто скажите Если вы уйдете сейчас, отзыв будет отменен, вы уверены? .

Честно, я бы выбрал вариант №2.ТАК использует его, и он хорошо работает здесь.Это было бы не для каждой страницы, только для тех, где идет активная рецензия ...

0 голосов
/ 04 января 2011

Ваш первый вариант - ваш лучший выбор. Вы можете включить таймер JavaScript на странице, обновляющей запись lastestActivity для видео, пока открыто окно браузера. Таким образом, вы не попадете в угол обзора, который занимает слишком много времени, и разблокировщик снимает блокировку преждевременно.

Вариант 2 проблематичен по нескольким причинам, некоторые из них уже упоминались, но, учитывая, что рецензент может не войти в систему в течение нескольких дней (отпуск?), Он будет слишком долго разблокировать видео без необходимости.

Вариант 4 (Javascript onBeforeUnload) Не будет охватывать вас в общих случаях сбоя браузера, сбоя ОС или сбоя питания. но это то, что вы можете реализовать в дополнение.

0 голосов
/ 04 января 2011

Когда один человек просматривает одно видео на одной странице.Вы можете захватить событие JavaScript unload, которое будет запущено, когда страница выгружается и клиент покидает страницу.Чем вы можете изменить состояние этого видео или даже показать диалоговое окно и позволить пользователю принять решение.

Возможно, система пинг-понга может помочь.В конце вы делаете AJAX-вызовы, привязанные к видео с помощью Ident.Когда эта деятельность прекращается, пользователи останавливаются.Фоновый процесс может искать последний пинг, а когда, например, час назад, изменить свое состояние.

...