IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

NodeJS Discussion :

Node.js question bête, mais bon


Sujet :

NodeJS

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2012
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Mars 2012
    Messages : 121
    Points : 58
    Points
    58
    Par défaut Node.js question bête, mais bon
    Bonjour,
    une question bête ....y'a un truc qui m'échappe:
    de ce que j'ai compris node.js est une appli qui tourne coté serveur que l'on install comme apache par exemple.

    Sous windows, lorsque par exemple on a un fait un server.js comment fait on pour qu'il tourne en permanence ?
    apache lui et installé comme un service donc il est lancé par defaut, mais comment on fait avec node.js

    quand je fais mes tests je lance la console et dedans je fais un "node server.js", il faudrait donc que je fasse un truc du genre un .bat qui se lance au démarrage du pc ?

    désolé pour cette question, mais dans les 2 tutos que j'ai suivi je n'ai rien vu concernant cette partie....
    Merci

  2. #2
    Membre extrêmement actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2016
    Messages
    223
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2016
    Messages : 223
    Points : 561
    Points
    561
    Par défaut
    Bonjour,

    La question est très bonne.

    Bien que je ne l'ai jamais fais moi même, je dirais que tu peux utiliser ce module
    https://github.com/coreybutler/node-windows

    pour écrire un script de post-installation (https://docs.npmjs.com/misc/scripts) qui va créer le dit service.

    A l'installation il faudra utiliser npm.

    Sinon oui un .bat peut faire l'affaire, sachant que si le service plante, il ne sera pas relancé.

    Pour aller plus loin,
    http://stackoverflow.com/questions/4...16912#15616912
    http://stackoverflow.com/questions/4...ground-service

    Créer un installeur windows
    https://coolaj86.com/articles/how-to...installer.html
    https://github.com/auth0/nodejs-msi


    pleins de topics très intéressant.

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2012
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Mars 2012
    Messages : 121
    Points : 58
    Points
    58
    Par défaut
    merci pour la réponse.
    C'est quand même étrange qu'il n'y est rien de prévu quand même ? c'est si peut utilisé que ça sous un serveur windows?

  4. #4
    Membre extrêmement actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2016
    Messages
    223
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2016
    Messages : 223
    Points : 561
    Points
    561
    Par défaut
    je nous voudrait pas répondre pour les autres, disons juste que c'est un langage linux friendly, historiquement développé sur et pour linux.
    La compatibilité windows n'est arrivé qu'avec la version 0.10 ou 0.12, lors de la bascule vers libuv. Et même aujourd'hui il doit rester quelques petits glitches à droite à gauche malgré tout les efforts.

    Notons aussi que le développement d'applications cliente avec nodejs est encore nouveau, donc peu de besoin d'installateur, donc peu de travail sur ces questions.

    Aussi, nodejs n'est qu'une plateforme d’exécution du langage, il en existe d'autres, c'est très différent de .net qui offre une expérience complète et intégrée.

    Enfin, l'avantage, et l'inconvénient de nodejs est d'être ultra communautaire. Si personne n'a besoin d'un tel support, il ne sera pas fournit et il faudra t'y coller.

    Sinon tu peux regarder du côté des pm2 et autre forever, mais c'est encore une autre histoire.

  5. #5
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2012
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Mars 2012
    Messages : 121
    Points : 58
    Points
    58
    Par défaut
    ok encore merci pour la réponse.
    je vais quand même exposer mon pb qui me pousse à utiliser cette techno au cas ou:

    j'utilise des tablettes windows 8 et 10 connectées à internet dans des locaux publiques.
    ces tablettes sont bloquées sur une seule application qui est en fait un site web(non local)
    le site web qui tourne sur ces tablettes permet d'envoyer des trames TCP à des équipements dans le local

    si le lien internet tombe les tablettes ne peuvent plus exécuter le site web (ben oui y'a plus internet) et du coup les équipement commandés par trames tcp ne sont eux non plus commandés...

    mon idée était de faire en sorte que lorsque le lien internet tombe les tablettes affichent une page html de 'secours' qui permettent quand même de commander les équipement via trame tcp avec du javascript....

    Mais javascript n'autorise pas l'envoi de trame TCP (c'est possible mais c'est du over http alors que moi il me faut des trames tcp brut...). J'avais donc eu l'idée d'utiliser du node.js pour l'envoi de ces trames tcp (ça marche)

    donc en résumé lorsque internet tombe, la tablette accède à un site web de secours (par exemple http://127.0.0.1:8080) servi par '' node server.js'' qui tournerait en permanence sur les tablettes. tout en sachant que les tablettes redémarrent tous les matins il suffirait que je fasse un .bat pour le lancer au démarrage

    est ce que la solution vous parait réaliste?
    ça me parait assez simple à mettre en oeuvre.

    concernant node.js si je comprends bien lorsque je le lance je ne peux lancer qu'un seul (et un seul) ''node server.js''

  6. #6
    Membre extrêmement actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2016
    Messages
    223
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2016
    Messages : 223
    Points : 561
    Points
    561
    Par défaut
    ok, voyons cela,

    j'utilise des tablettes windows 8 et 10 connectées à internet dans des locaux publiques.
    ces tablettes sont bloquées sur une seule application qui est en fait un site web(non local)
    ok.


    le site web qui tourne sur ces tablettes permet d'envoyer des trames TCP à des équipements dans le local
    Donc tu es sur lu lan ? ou un wan ?


    si le lien internet tombe les tablettes ne peuvent plus exécuter le site web (ben oui y'a plus internet) et du coup les équipement commandés par trames tcp ne sont eux non plus commandés...
    Dans tous les cas, envoyer les commandes depuis les tablettes ou depuis un relais sur le réseau, si le lien tombe, les remotes deviennent inutile.

    mon idée était de faire en sorte que lorsque le lien internet tombe les tablettes affichent une page html de 'secours' qui permettent quand même de commander les équipement via trame tcp avec du javascript....
    Oui. Mais pas de lien de communication, pas d'envoi de message vers un relais on un device. Le réseau ne fonctionne plus.

    Mais javascript n'autorise pas l'envoi de trame TCP (c'est possible mais c'est du over http alors que moi il me faut des trames tcp brut...). J'avais donc eu l'idée d'utiliser du node.js pour l'envoi de ces trames tcp (ça marche)
    oui, voir plus haut.

    Bref, je pense qu'il te faut envisager une communication en lien direct entre les devices et la remote. A voir encore si cela est réaliste en termes d'usage, un lien bluetooth à des limites physique.
    Il te faut envisager aussi un développement multi plateforme, AMHA, node ne sera ici qu'une composante de l'architecture finale et non un homme à tout faire.

    Finalement, étant donné la supposition que l'on parle d'un lan, et le fait acquis que l'on à rien sans rien, ré évaluer les risques de panne de celui ci, ses conditions de maintenance, et les conséquences sur cette fonctionnalité de contrôle à distance.

  7. #7
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2012
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Mars 2012
    Messages : 121
    Points : 58
    Points
    58
    Par défaut
    Alors:

    les tablettes et les équipements sont sur un même lan relié à internet via adsl/routeur classique. on a bien un lien direct entre les tablettes et les équipements.
    les ordres envoyés aux équipements se font depuis internet via le routeur et redirection de ports
    le site web qui tourne en temps ''normal'' sur les tablettes n'est pas un site local il se trouve sur le web
    effectivement si le lien internet tombe les équipements ne sont plus commandés (lorsque ça arrive actuellement, ce qui est rare, il y a un moyen manuel de palier au dysfonctionnement)

    le but de la manip était de faire tourner (en cas de panne internet) une page web de secours (placée en local sur les tablettes) qui paliait au site web qui tourne lorsque le lien internet fonctionne.

  8. #8
    Membre extrêmement actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2016
    Messages
    223
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2016
    Messages : 223
    Points : 561
    Points
    561
    Par défaut
    quid d'acheter un rasberry pi branché sur le lan pour faire tourner des serveurs de relais ? pour quelques dollars (30) tu as une unité intelligente sur le réseau, qui ne prend pas beaucoup de place



    le but de la manip était de faire tourner (en cas de panne internet) une page web de secours (placée en local sur les tablettes) qui paliait au site web qui tourne lorsque le lien internet fonctionne.
    Je dois préciser qu'un lien lan ou wan n'est pas un lien direct puisqu'il dépend d'un routeur pour faire transiter les paquets.
    Je ne suis même pas certain que l'envoi de trames tcp pur, comme peut le faire arp ne nécessite pas un routeur.

    D'où l'avantage d'une communication type bluetooth.

    Finalement, je prendrais en compte le fait que faire tourner un serveur sur une tablette ne me semble pas si triviale que cela, et je pense que cela nécessitera de changer de technos, donc possiblement des couts de dev plus élevés.
    Ce qui, amha, peut être évité par le déploiement d'un micro ordinateur sur le lan, cela permettra aussi de retirer cette dépendance à ce lien wan, qui n'est pas fiable, je suis complètement d'accord. Et comme la gestion du pare feu réseau ne semble pas te poser de problème tu pourras rediriger les ports pour ouvrir un lien ssh vers le micro ordinateur pour la maintenance.

  9. #9
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2012
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Mars 2012
    Messages : 121
    Points : 58
    Points
    58
    Par défaut
    hum... si je commence à ajouter d'autres machines sur le lan alors que j'ai déja des tablettes ....

    les trames tcp n'ont pas besoin d'un routeur, mais comme de toute façon tout mon lan est géré par ce routeur, si il tombe plus rien ne marche, d'ou le dépannage manuel qui est possible aujourd'hui.

    en fait le système est pensé pour être le simple possible (donc le plus ''robuste'') : des tablettes (redondantes) bloquées sur une appli qui lancent un site web et qui contrôlent des équipements et une solution de secours manuelle au cas ou un il y ait un pb..... pour les mises à jour, je met à jour le site web et non pas l'appli sur les tablettes. Etant tout seul à m'occuper de ce système il faut que cela soit simple.
    je vais essayer la technique du serveur web local node.js qui me semble assez léger voir ce que ça donne

  10. #10
    Membre extrêmement actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2016
    Messages
    223
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2016
    Messages : 223
    Points : 561
    Points
    561
    Par défaut
    oui, à toi de voir maintenant, je me permet juste d’émettre une nouvelle réserve sur l'idée de mettre quoique ce soit dans la tablette (serveur web local, ou même juste une page web caché), qui me semble encore plus compliqué à gérer qu'un serveur ssh accessible à distance. M'enfin, c'est à évaluer en fonction de ces propres compétences.

Discussions similaires

  1. Question bête mais qui mérite reflexion. SLUG vs INT
    Par Ghostaunt dans le forum Administration
    Réponses: 5
    Dernier message: 13/03/2013, 18h24
  2. Questions bêtes mais servent au démarrage
    Par gentilman_delphi dans le forum Débuter
    Réponses: 4
    Dernier message: 04/01/2011, 23h04
  3. Réponses: 3
    Dernier message: 25/09/2010, 14h38
  4. Question bête mais importante pour moi
    Par walf80 dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 27/04/2007, 04h40
  5. [Tableaux] Question bête mais
    Par nazoreen dans le forum Langage
    Réponses: 2
    Dernier message: 14/06/2006, 09h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo