2015-04-17 2 views
2

Я использую meteor-user-status для отслеживания состояния онлайн-пользователей.Метеор: не удается запустить монитор на холостом ходу до тех пор, пока не будет синхронизирован с сервером

Чтобы отслеживать состояние дел в режиме ожидания, похоже, согласно документации, мне нужно только поставить следующий код на Meteor.startup на клиенте.

Meteor.startup(function() { 
    UserStatus.startMonitor({ 
     threshold: 30000, 
     interval: 1000, 
     idleOnBlur: true 
    }); 
}); 

Но при этом я получаю сообщение об ошибке Не удается запустить монитор простоя, пока не синхронизируются с сервером К сожалению, я не мог узнать, как начать TIMESYNC. Чтение документа в github Я бы предположил, что он запущен по умолчанию.

Отсутствует ссылка, чтобы запустить простаивающий мониторинг?

ответ

4

Похоже, вы не можете запустить монитор под клиента синхронизируется с служить, так что вам нужно обернуть try/catchs внутри Tracker.autorun

Tracker.autorun(function() { 
    if (Meteor.userId()) { 
     try { 
      UserStatus.startMonitor({ 
      threshold: 30000, 
      interval: 1000, 
      idleOnBlur: true 
      }); 
     } catch(err) { 
      console.log(err); 
     } 
    } else { 
     UserStatus.stopMonitor(); 
    } 
}); 

Это должно работать.

Также есть функция с именем UserStatus.isMonitoring(), но на основе этого #33 проблема кажется, что она может заморозить браузер.

+0

Где мне нужно поставить Tracker.autorun ...? – MBushveld

+0

положите его на сторону клиента – Ethaan

+1

thx! Я изначально положил его на запуск, это не сработало, но за пределами стартапа все в порядке – MBushveld