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

JavaScript Discussion :

Serveur HTTP decode WS, convertion nmea0183


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 320
    Par défaut Serveur HTTP decode WS, convertion nmea0183
    Bonjour,
    Ce post est une demande de méthodologie pour obtenir ce que je souhaite.
    J'ai effectué de nombreuses recherches mais je m'y perds entre ce qu'il est possible de mettre en oeuvre et ce qui l'est pas / plus.

    Le but final est d'avoir un serveur http (tcp) qui extrait quelques valeurs des trames WS et que ces valeurs soient converties en trames nmea0183 puis transmises à un logiciel local. Dans l'idéal des choses le tout imbriqué dans une extension google chrome pour faciliter la gestion (Activation du serveur et sélection race)

    Mes questions sont les suivantes :
    - Est ce qu'un serveur http peut décoder des trames WS ?
    Je les visualise avec les outils de développement Chrome dans Network / WS.
    Dans mes recherches j'ai trouvé un module pour node.js appelé wssip qui intercepte les trames mais est ce qu'il existe autre chose qui simplement pourrait "lire" et extraire ce dont j'ai besoin ?

    - Une fois ce point résolu, il va me falloir convertir les valeurs obtenues en trames nmea, là encore j'ai vu une solution pour node.js appelé nmea-simple.
    Existe il autre chose que je n'aurais pas vu / trouvé ?


    Tout ce que je trouve sur le net concerne node.js mais visiblement c'est pas compatible avec une extension chrome. Je suis tombé aussi sur quelque chose qui s'appelle socket.io mais du coup je sais pas ce qu'il est judicieux d'approfondir ... d'ou ma demande sur ce forum où j'espère qu'un ou plusieurs d'entre vous sauront m'aiguiller.

    Merci et bonnes fête de fin d'années

    PS: Aux modérateurs, si je me suis trompé de section, désolé ... j'ai hésité à mettre ce topic dans la section node.js mais comme visiblement ça correspond pas a ce que je souhaite mettre en oeuvre, je l'ai mis ici ... si vous voulez le déplacer dans une section que vous estimez plus appropriée pas de soucis 😉

  2. #2
    Expert confirmé
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 100
    Par défaut
    Dans le monde du JavaScript côté client, WS signifie Web Socket, c’est une technologie de communication à double sens reposant sur HTTP. Disons que c’est une sorte de cousin d’ajax. La bibliothèque socket.io que tu as trouvée concerne les web sockets.

    Vu que tu parles de trames, je pense que le WS dont tu parles est quelque chose de complètement différent. En faisant quelques recherches je suis tombé sur des docs de Cisco, et j’ai eu l’impression que ça concernait des couches de protocole inférieures à HTTP.

    Actuellement, seul G. Chrome propose de gérer de la communication en-dessous de HTTP, ça s’appelle raw sockets et c’est encore expérimental. Voir cette réponse StackOverflow.

    En ce qui concerne le logiciel local, il est possible de faire une extension de navigateur pour communiquer avec, on appelle ça le native messaging.
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 320
    Par défaut
    Bonsoir Watilin,
    Merci d'avoir pris le temps de me répondre, je vais regarder les 2 liens que tu m'indiques et si besoin je posterais à nouveau ici

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 320
    Par défaut
    Bonjour Watilin,

    J'ai lu les 2 liens que tu m'as transmis et j'en arrive à la conclusion suivante:
    - Comme les rawsocket sont au stade expérimental, je laisse ça de coté, mes connaissances et ma réflexion sont limités pour me lancer dans ce genre de projet (je vais surement y passer des heures pour quelque chose qui au final ne fonctionnera surement pas ...)
    - Si j'ai bien compris le Native Messaging, c'est quelque chose qui ne correspond pas à ce que je souhaite faire.
    Je pourrais lancer le logiciel mais j'ai besoin d'une connexion "physique" par port série (COM) ou via localhost en TCP ou UDP.
    Ce point je l'ai pas vu dans le native Messaging ou alors je suis complètement passé à coté ...


    Après ces lectures, qui n'en reste pas moins extrêmement intéressantes, j'ai continué mes recherches en sachant mieux définir mes besoins et vers quoi me tourner.
    Dans ma petite tête j'arrive à cette solution:

    - Il me faut une extension Google Chrome capable d'extraire les données dont j'ai besoin des messages (WS) reçus (que je peux visualiser dans les outils de développement / Onglet Network / Type WebSocket).
    J'ai déjà quelque chose qui fait ce job et j'ai l'autorisation du dev de prendre le code dont j'ai besoin.

    - Il me faut transmettre ces données au serveur node (visiblement je peux transmettre un fichier au format JSON).
    Sur ce point j'ai trouvé quelque chose, Topic StackOverflow.

    - Il me faut encoder les données au format nmea (module nmea-simple pour node).


    Est ce que cette "méthode" te parait logique ?

    Tout ce qui concerne la facilité d'installation/distribution, je m'y pencherais une fois le projet fonctionnel.

    Merci

  5. #5
    Expert confirmé
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 100
    Par défaut
    Je crois que je commence à comprendre… Il y a un site web qui transmet au client, par web socket, des données de localisation NMEA. Et toi tu utilises ce site web et tu aimerais pouvoir « rediriger » ces données vers un logiciel qui communiquerait en série avec un périphérique. C’est bien ça ?

    Le serveur NodeJS est une bonne idée. Si tu lui fais envoyer des entêtes CORS, tu pourras faire une requête ajax vers ton serveur NodeJS depuis une page du site source.
    Je ne sais pas quelle techno de serveur NodeJS tu utilises, mais avec l’API native, ça ressemblerait à ça :
    Code JS : Sélectionner tout - Visualiser dans une fenêtre à part
    response.setHeader('Access-Control-Allow-Origin', '*');
    Voir response.setHeader.

    La partie compliquée va être de récupérer les données du socket. De ce que j’ai vu vite fait dans la doc de WSSiP, c’est un logiciel complet, il n’a pas l’air conçu pour être intégré comme module dans une application Node. Il faudrait modifier son code source, ça demanderait beaucoup de travail.

    Une autre solution, c’est un truc que j’ai déjà fait par le passé : de l’injection de script dans la page du site source. Pour ça il te faudra une extension de type gestionnaire d’userscript, par exemple Greasemonkey. Cette solution peut demander pas mal de travail aussi, ça dépendra de la complexité du JavaScript du site source. L’idée c’est de comprendre comment il initie la connexion au socket, et de le faire à sa place. Ainsi, ton script recevra toutes les données du socket comme s’il était le script original de la page.
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

Discussions similaires

  1. Sockets SSL ( serveur HTTPS )
    Par hexadecime dans le forum Réseau/Web
    Réponses: 4
    Dernier message: 19/10/2007, 18h02
  2. [C++] Serveur HTTP
    Par taron dans le forum C++
    Réponses: 1
    Dernier message: 12/01/2006, 00h44
  3. Tester un serveur HTTP et un FTP
    Par fmcvieira dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 29/11/2005, 21h51
  4. [Net] Creation serveur HTTP en C++
    Par Yannos94 dans le forum C++
    Réponses: 13
    Dernier message: 14/11/2005, 12h05
  5. [Réseau] Headers vers un serveur http
    Par gexti dans le forum Entrée/Sortie
    Réponses: 5
    Dernier message: 04/05/2004, 14h58

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