2016-09-21 2 views
-1

Я немного потерял, как заставить приложение ждать, пока клиент не подключится к сети. Ожидается, что пользователи приложения не будут запускать приложение вручную (они не будут очень грамотными на компьютере), и приложение автоматически запустится при входе пользователя в систему Windows/Linux/Mac. В таком случае, как я могу убедиться, что во время сеанса пользователя на компьютере приложение запускается, как только доступно подключение к Интернету. Один из вариантов, который я использую, - это основной параметр узла, предназначенный для запуска сценария перед запуском. Мой код сценария: -Подождите, пока подключение к Интернету не запустит приложение webkit узла.

isOnline = require('is-online'); 
 
online = false; 
 
window.console.log("Hello"); 
 
var a = function() { 
 
    while(online == false) { 
 
    isOnline(function(err,_online) { 
 
     online = _online; 
 
    }); 
 
    } 
 
}; 
 
a();

Здравствуйте, логгируется, но затем мое приложение начинает загрузку и не, как ожидается, из-за отсутствия подключения к Интернету. Любые другие идеи для реализации этого?

+0

Интересная проблема. Как насчет обещаний? Вы также можете запустить цикл, который отправляет запрос на получение с сайта с интервалами, если запрос get возвращает статус 200, а затем запускает основную функцию. – Brian

+0

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

ответ

0

Мой предыдущий ответ не сработает. Вот один из них: он проверяет подключение к Интернету каждые 5 секунд и только выходит, когда есть соединение.

var isOnline = require('is-online'); 
process.stdout.write("Hello\n"); 
var check = function() { 
    process.stdout.write("Checking...\n"); 
    isOnline(function(err, _online) { 
     if (_online) { 
      // If you want to invoke a script directly, do so here. 
      // If you want to script to exit when there's a connection, 
      // just don't do anything here. 
      process.stdout.write("Online\n"); 
     } else { 
      process.stdout.write("Offline\n"); 
      setTimeout(check, 5000); 
     } 
    }) 
} 
check(); 
0

Вы можете использовать объект навигатора, чтобы проверить онлайн статус:

alert(navigator.onLine); 

возвращает логическое значение, так что вы можете легко использовать логику, как это ...

if(navigator.onLine){Proceed();} else {Whatever();} 

Для быстрый тест, если вы вытащите кабель CAT5 со своего компьютера, вы должны получить ложь.

Смежные вопросы