В разделе автономных возможностей для Web описано here, как определить, подключен ли клиент к Интернету или нет. Однако Firebase, похоже, не вызывает обработчик событий каждый раз, когда клиент подключается или отключается при работе в среде Node. Он работает как ожидается при запуске в браузере, то есть он вызывает обработчик событий каждый раз, когда клиент подключается или отключается от Интернета.Обнаружение состояния соединения не работает должным образом в среде Node
Отъезд jsFiddle. Как только вы запустите скрипку, и вы подключитесь или отключитесь от Интернета, вы увидите соответствующее сообщение «подключено» или «отключено» в консоли.
Я запустил приведенный ниже код в узле, который точно такой же, как и код, который я запускал в браузере. Во время работы в среде узла, я заметил, что я получил начальное «подключенный» и «отключено» сообщение, но если я снова подключен и отключен от Интернета, никаких сообщений не выводятся значения, что обработчик событий не называется
var Firebase = require('firebase');
var ref = new Firebase("<FIREBASE-APP>");
var connectedRef = ref.child(".info/connected");
connectedRef.on("value", function(snap) {
if (snap.val() === true) {
console.log("connected");
} else {
console.log("not connected");
}
});
Спасибо за быстрый ответ. Наверное, я был немного нетерпелив. Я снова запустил сценарий и в своей книге mac, в среднем потребовалось ~ 200 секунд, чтобы обнаружить, что соединение было потеряно. Когда я подключаюсь к Интернету, он обнаруживает, что через пару секунд это хорошо. Однако в браузере оба события обнаруживаются почти мгновенно. Любая причина, по которой была бы такая большая разница, чтобы обнаружить, что соединение было потеряно в среде узлов и браузерах? На моей машине для Windows потребовалось ~ 50 секунд, чтобы обнаружить, что соединение потеряно, что не так плохо, как 200 секунд. –
Мой компьютер Macbook прошел ровно минуту. Это действительно зависит от ОС и среды, в которой работает ваш код. Я добавил дополнительную информацию об этом. –
Хорошо. Имеет смысл. Благодаря! –