Как реализовать обратный отсчет JavaScript, синхронизированный на нескольких клиентах с помощью Firestore? - PullRequest
0 голосов
/ 01 февраля 2019

Один клиент может начать обратный отсчет, и он будет виден на всех других клиентах.

В идеале:

  • Требуется точность в 1 секунду
  • Любойклиент может приостановить или сбросить обратный отсчет
  • Обратный отсчет продолжится, если не будет подключено ни одного клиента

Я пытался сохранить время окончания (после окончания обратного отсчета) в Firestore, но яЯ запутался из-за того, что у разных клиентов время разное на несколько секунд.

1 Ответ

0 голосов
/ 01 февраля 2019

Я думаю, что это необходимые шаги

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

2 - Когда пользователь подключится, запроситесохраненное время И отметка времени сервера, рассчитайте разницу и воспроизведите обратный отсчет на экране

3 - если разница меньше 0 (время сервера> сохраненное время), вы знаете, что счетчик завершен.

Нет необходимости проверять локальное время пользователя

ОБНОВЛЕНИЕ

var sessionsRef = firebase.database().ref("Time");
sessionsRef.push({counter: ServerValue.TIMESTAMP});

Затем просто прочитайте его как обычно, как если бы вы читали дочерний узел со слушателем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...