Скрипт проверки доступа к серверу?

Тема в разделе "Raspberry Pi", создана пользователем glaviznin, 12 фев 2019.

  1. glaviznin

    glaviznin Нерд

    Всем привет.
    Только начинаю изучать малинку.
    Сделал что бы при старте малинки на весь экран открывалася хромиум с отображением страницы на нашем сервере .
    Когда доступ к серверу есть все ок, скрипты сервера сами обновляют страницу(скрипты делал мой Веб программер, я не знаю что там, знаю что на php:)) , могу уточнить, но кажется это не имеет значения к моему вопросу))

    Но вот после того когда надо по тех.причинам ребутать сервер, хром естественно пишет 505.
    И потом приходится руками переоткрывать страницу.

    Не подскажете или покажите, как написать какой то скрипт на малинке, что бы при потери доступа к серверу, он сам пытался обновлять страницу.
    Я хоть и программер с 25 летним стажем, но питон и линух только начинаю изучать, поэтому нуб.
    Можно ссылку на статью с похожей проблемой, дальше доковыряю сам.
     
  2. Поищите готовое расширение для хрома.
     
  3. @glaviznin
    Чудеса какие то получаются, если перегружаете сервер и он, с ваших слов недоступен, то хром получает 505-й код "HTTP Version Not Supported". Откуда хром его получает если не с сервера?
    Совсем не понятно почему проверять доступность сервера требуется не на javascript на уже загруженной странице, а внешним скриптом.

    П.С.
    Если хром на малине обычный, т.е. поведение не отличается от chrome.exe на виндовс и chromium-browser на линукс, то и на малине проверять доступность сервера имеет смысл точно так же, обычным javascript-ом.
    Когда запускаем хром, сервер может быть недоступен и сразу получим ошибку, запустим хром с локальной страницей.
    Код (HTML5):

    <!DOCTYPE html>
    <html>
    <head>
    <script src="jquery-2.2.4.min.js"></script>
    </head>
    <body onload="loadPage()">
    Checking for server available...
    <script>
    function loadPage() {
       var u = 'http://forum.amperka.ru/'
       $.ajax({
      type: 'HEAD',
      async: true,
      url: u+'?r='+(new Date()).getTime(),
      }).done(function(){
         window.location=u;
      }).fail(function(){
         setTimeout(function() {loadPage();}, 5000);
      });  
    }
    </script>
    </body>
    </html>
     
    не забудем положить jquery рядышком с test.html
    хрому скажем чтоб забил немножко на веб-секюрити и не беспокоил нас всякими предупреждениями в инфо-барах
    и запустим
    Код (Text):

    chromium-browser --disable-web-security --user-data-dir=/tmp -incognito --kiosk --disable-infobars file:///tmp/test.html
     
    или так
    Код (Text):

    chrome.exe --disable-web-security --user-data-dir=D:\tmp -incognito --kiosk --disable-infobars file://D:\tmp\test.html
     
    Скриптом проверяем доступность сервера, меняем локейшен если он доступен, или повторяем проверку через 5 сек.
    Если выполнили загрузку страницы с сервера, дальнейшие проверки уже делаем на скриптах получаемых с сервера.
    Как то так.
     
    Последнее редактирование: 15 фев 2019
  4. glaviznin

    glaviznin Нерд

    Респектую. Я нуб в веб технологиях и распбери. Спасибо за расширенный ответ. Думаю мои коллеги разберутся. о результатах доложу!