Задать вопрос
@jastioknow

Защищенный ТАЙМЕР для ограничения прохождения викторины по времени?

кто подскажет совет реализации (бизнес логики) по поводу защищенного таймера
ДЛЯ ЧЕГО ТАЙМЕР: что-то вроде опроса. Дается определенное время, по истечению которого принудительно заканчивается опрос с теми вариантами, которые юзер успел указать).

Пару нюансов:
1) Надо чтобы при заходе с других устройств , оставшееся время было одинаковым (пример: дается 3 часа, клиент на пк сразу ливает и через 2 часа заходит с телефона и показывает что остался час).
2) Защита от изменений локальной даты (на устройстве у самого клиента).
3) мб еще что-то, до чего я еще не додумался .

может кто-то встречался с чем-то похожим, буду благодарен помощи!

Дополнение: мой вопрос про ЗАЩИЩЕННЫЙ ОТ ПОДДЕЛОК ТАЙМЕР. Чтобы он не зависел от локальной даты клиента (так как она изменяема) .
  • Вопрос задан
  • 258 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev
Седой и строгий
Элементарно же, когда пользователь начинает опрос, сохранять в БД запись, содержащую идентификатор опроса, идентификатор пользователя и время начала опроса.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
SilenceOfWinter
@SilenceOfWinter
та еще зажигалка...
а в чем сложность? храните в бд дату начала викторины для акка
Ответ написан
@Refguser
Решения для бизнеса: корп.сайты, ИМ и пр.
Чтобы он не зависел от локальной даты клиента (так как она изменяема) .

Тебя вообще не должно волновать время на клиенте. Да и на сервере в общем-то тоже (просто его может быть удобнее использовать как стартовую точку, а не ноль).
Таймер это счётчик - он считает пройденное кол-во единиц времени (сек, мин, часов и тд).
Делаешь постоянное соединение клиент-сервер (сокет или ещё что-то) и, как выше говорили, сохраняешь стартовую точку на сервере (в базе или файле - тут по задачам). Пока клиент доступен счётчик прибавляет единицы. Для пущей надёжности ещё на клиенте пишешь в локалсторедж и сверяешь с серверным. Можно пойти ещё дальше и зашифровать хеш из времени клиента + таймер + nonce.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы