Partage
  • Partager sur Facebook
  • Partager sur Twitter

actualiser page sur plusieurs pc

    13 novembre 2017 à 9:17:16

    Bonjour,

    Je travaille sur un projet pour un ami qui consiste a récupérer des données de capteurs pour les afficher sur 3 appareils en rallye de régularité.
    L'appli en php tourne sur un raspberry, tout fonctionne pour le moment, mais je bute sur un truc tout bête.

    Le copilote ou le pilote choisit dans une liste le type de pneu pour la spéciale en cours, ca calcule le périmètre et donc la distance parcourue en lisant le capteur.
    Mais sur l'écran de l'autre, ces données ne se mettent pas a jour.

    Le chrono est en Js et est lancé au top départ.
    Toutes ces manips se font sur l'écran du raspberry, ou sur le smartphone ou tablette pilote copilote.

    Sur un seul écran, ca va, mais comment avoir la même page sur le smartphone du pilote et sur la tablette du copilote sans action de leur part.
    Cad, avoir le chrono sur un autre appareil sans le relancer, et toutes les autres données calculées par l'appli.

    Je pense à ajax, mais n'étant pas très calé avec je ne trouve pas de solution pour le moment, sauf un rafraichissement de la page, mais cela coupe le chrono et d'autres calculs.

    En d'autres termes, avoir sur 3 écrans les données en live.

    Merci d'avance

    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      13 novembre 2017 à 9:58:48

      Ce que tu peux faire, c'est une connexion en WebSocket avec un évènement style "update" qui indiquera à la page de requêter les nouvelles informations, voire de directement passer ces informations en payload de cet évènement.

      Pour du realtime update sur plusieurs postes à la fois, WebSocket est parfaitement adapté, et sera extrêmement simple à concevoir à l'aide d'une suite d'outils comme NodeJS/Socket.io

      • Partager sur Facebook
      • Partager sur Twitter
        13 novembre 2017 à 16:59:52

        merci pour la réponse.

        j'ai installé nodejs et socket.io sur mon nunux, mais comme beaucoup, soucis de port déjà ouvert.
        je vais approfondir tout ca plus en détail ce soir.

        • Partager sur Facebook
        • Partager sur Twitter
          21 novembre 2017 à 11:47:35

          après des heures, clopes et tasses de café, je butte toujours avec nodejs et websoket.

          j'ai beau lire et relire le tuto de openclassroom, ca ne fonctionne pas.
          Je ne suis pas manchot avec apache, php, mais là....

          d'après ce que j'ai lu, nodjs fonctionne avec html, mais pas php, donc j'ai créé un htaccess pour transformer mon php en html.
          malheureusement, toujours pareil, ca bug.

          je vais m'y replonger une fois encore pour comprendre la chose.

          • Partager sur Facebook
          • Partager sur Twitter
          Anonyme
            21 novembre 2017 à 13:42:11

            Je crois que tu n'as pas compris quelque chose:

            • PHP, NodeJS, sont des outils server-side. Dans le cadre de HTTP, ils font du traitement quelconque avant de renvoyer une réponse, généralement sous forme de page HTML.
            • HTML est un outil client-side. Il est généralement généré par les outils server-side avant d'être renvoyé à l'utilisateur.

            PHP, comme NodeJS, va effectuer un traitement puis va générer une page, qui sera renvoyée. La page ne sera pas envoyée tant que le traitement n'est pas effectué (en gros, c'est plus fin que ça, mais ce n'est pas important, la théorie suit cette logique).

            HTTP a la particularité d'être du "Fire and forget": Il traite la requête et ferme la connexion une fois que tout a été transféré (la page HTML, suivant mon exemple) (encore une fois, il y a des alternatives, qui ont apporté des solutions "bricolées" depuis de longues années pour répondre à ce problème de connexion constante, mais on ignore ici, on a WebSocket qui fait admirablement bien le travail).

            Le problème ici est que tu veux garder une connexion active entre le client web et le serveur. Sinon, si la connexion est fermée (donc perdue), tu ne peux pas le contacter !

            Pour ça, il y a le principe de socket (plus bas niveau que le HTTP), qui est de directement gérer cette connexion et de construire son propre échange dessus. Tâche normalement laborieuse, Socket.IO et les WebSockets permettent de grandement simplifier ces actions, donc de te permettre de faire constamment communiquer ton serveur et tes différents clients navigateurs.

            Plutôt que regarder les cours d'OpenClassrooms, je t'invite à regarder quelques tutoriels de Grafikart concernant le principe des WebSocket, l'utilisation de SocketIO et éventuellement de JWT. Sa vidéo "JWT par l'exemple (épisode 2)" travaille un exemple avec un serveur PHP pour afficher le site et un serveur NodeJS simple pour faire communiquer les différents navigateurs, je te recommande de la regarder.

            -
            Edité par Anonyme 21 novembre 2017 à 13:43:38

            • Partager sur Facebook
            • Partager sur Twitter

            actualiser page sur plusieurs pc

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown