Подтвердить что ты не робот

Firebase Callbacks - какой основной триггер?

Я понимаю, что в Firebase я могу зарегистрировать свою страницу для обратных вызовов с помощью метода "on".

Согласно их документам:

on() используется для прослушивания изменений данных в определенном месте. Это основной способ чтения данных из Firebase.

firebaseRef.on('value', function(dataSnapshot) {
  // code to handle new value.
});

Мой вопрос:

Как это работает?

Как он знает, что что-то изменилось на сервере?

(лучше) Как сервер может "откликнуться" на браузер?

Один ответ может заключаться в том, что это "опрос". Но я не видел ссылок на этот подход в документации Firebase или свойствах, чтобы настроить время опроса...

Кто-нибудь знает?

Большое спасибо

4b9b3361

Ответ 1

Firebase использует WebSockets, чтобы сервер мог " нажимать " данные клиенту. Так как не все версии браузера поддерживают WebSockets, они также возвращаются к длинному опросу для этих браузеров.

Детали реализации того, как это работает на сервере, являются проприетарными и сложными - достаточно, чтобы написать книгу, выходящую за рамки вопроса SO. Логически работает точно так же, как рекламируется: служба спроектирована так, что в любое время вызывается функция set(), push() или update() (или эквиваленты REST), она уведомляет всех слушателей об изменении.

Независимо от того, использует ли браузер WebSockets или нет, не существует "времени опроса", так как клиент неоднократно не обращается к серверу. Длительный опрос означает ожидание изменения данных, а не повторный опрос, чтобы узнать, произошло ли изменение. Как вы можете видеть, опробовав учебник или любые примеры в реальном времени, изменения данных синхронизируются со всеми клиентами в течение миллисекунд - ничего не нужно настраивать.