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 :

Communication entre logiciel C++ et plugin firefox


Sujet :

JavaScript

  1. #1
    Membre confirmé

    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Octobre 2011
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Octobre 2011
    Messages : 153
    Points : 591
    Points
    591
    Par défaut Communication entre logiciel C++ et plugin firefox
    Bonjour.

    Je travaille actuellement sur un programme en Visual C++ qui doit échanger des informations avec un plugin Firefox (en javascript). Jusqu'à présent j'utilisais un fichier XML comme fichier d'échange entre les deux mais à présent je souhaiterais m'affranchir de ce fichier et faire communiquer les deux directement.
    Est-ce que c'est possible et si oui comment ?

    Merci par avance.

    Watchi~

  2. #2
    Membre du Club
    Homme Profil pro
    Inscrit en
    Avril 2013
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Landes (Aquitaine)

    Informations forums :
    Inscription : Avril 2013
    Messages : 30
    Points : 42
    Points
    42
    Par défaut
    Salut,
    En mes connaissances il me semble impossible de communiquer entre javascript et C++, ton échanges grâce a un fichier xml est très astucieux .
    Bonne continuation pour ton plugin Firefox !

  3. #3
    Membre confirmé

    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Octobre 2011
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Octobre 2011
    Messages : 153
    Points : 591
    Points
    591
    Par défaut
    D'accord. C'est dommage quand même. Toutefois, je persiste dans mes recherches (l'add-on KeeFox m'intrigue) et si je trouve quelque chose j'en ferai part.

    Merci en tout cas

  4. #4
    Expert éminent
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Points : 9 127
    Points
    9 127
    Par défaut
    OUI

    la solution est complexe
    ton C++ expose une url HTTP sur le port de ton choix
    et ton js fait un XMLHttpRequest dessus
    comme c'est un plugin il te faut voir la doc de FF concernant la sécurité.

    du coup ton Fichier XML est le bien venu
    ton C++ au lieu de produire un fichier XML produit une réponse text/xml dont le contenu est le même que celui de ton fichier.

    quant à ton JS au lieu de lire le fichier XML XMLHttpRequest appelle le "serveur http" de ton C++ et parsse automatiquement le XML.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var xmlDoc=xmlhttp.responseXML
    A+JYT

  5. #5
    Membre confirmé

    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Octobre 2011
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Octobre 2011
    Messages : 153
    Points : 591
    Points
    591
    Par défaut
    D'accord. Ça m'a l'air bien bon ça.

    En fait, si je comprends bien, le plugin Firefox utilise XMLHttpRequest de façon native grâce à JavaScript et permet de communiquer simplement avec un programme en C++. Et si j'en crois la MSDN, c'est aussi déjà implémenté dans Visual C++ (je me trompe ?).

    Du coup, le plugin et le programme communiquent entre eux directement en local ou par le biais d'un intermédiaire (le fichier XML ? Et si fichier XML, où se situe-t-il ?) ?
    Et surtout, qu'en est-il de la sécurité de ce type d'échanges ?

    En tout cas, merci pour cette solution qui m'a l'air prometteuse (et ça m'enchante de voir que je n'étais pas loin du compte au final )

  6. #6
    Expert éminent
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Points : 9 127
    Points
    9 127
    Par défaut
    Pas de fichier intermédiaire et pas de communication native

    XMLHttpRequest communique en HTTP
    le protocole HTTP véhicule des requêtes en mode TEXTE et envois des reponses en mode TEXTE.

    ton plugin peut donc envoyer une demande à n'importe quel serveur HTTP qui lui répond par une texte dans la socket. ce texte peut donc être du XML. IL n'y a dans ce processus d'échange que du TEXTE pas de FICHIER

    XMLHttpReques ches Microsoft est effectivement écrit en Visual C++ mais ce n'est pas le cas pour firefox ni google chrome ni safari ni .... en fait je ne connait que l'implémentation ActiveX de microsoft qui soit en Visual C++
    mais ça ne change rien car tu ne fait que l'utiliser nu n'as accès qu'a l'objet JS XMLHttpRequest et à ses méthodes.

    A+JYT

  7. #7
    Membre confirmé

    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Octobre 2011
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Octobre 2011
    Messages : 153
    Points : 591
    Points
    591
    Par défaut
    Je crois que je comprends enfin (désolé, un peu long à la détente ^^") : le programme C++ devrait se comporter comme un serveur HTTP local et le plugin comme un client ?

    Dans ce cas, est-ce qu'avec cette méthode les échanges peuvent être suffisamment sécurisés ? Pas grand chose, juste faire en sorte que ces échanges ne soient pas écoutés par n'importe quel programme tiers.
    Parce qu'avec une méthode comme celle-ci, à première vue, ça semble être un jeu d'enfant d'écouter ces échanges simplement en scrutant le port 80.

    Edit : Et si je parlais d'implémentation dans Visual C++, c'est parce que je suis tombé sur ceci : http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx
    J'aimerais avoir ton avis dessus.

  8. #8
    Expert éminent
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Points : 9 127
    Points
    9 127
    Par défaut
    c'est toi qui choisit le port et c'est toi qui définit la sécurité de ton serveur
    par exemple utilise https sur un port spécifique
    utilisation d'un certificat dans ton plugin
    etc.

    A+JYT

  9. #9
    Membre confirmé

    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Octobre 2011
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Octobre 2011
    Messages : 153
    Points : 591
    Points
    591
    Par défaut
    Il ne me reste alors "qu'"à prendre en main XMLHttpRequest côté plugin et à faire en sorte que mon programme C++ ouvre un port et filtre ce qui y transite ?

  10. #10
    Expert éminent
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Points : 9 127
    Points
    9 127
    Par défaut
    exactement

  11. #11
    Membre confirmé

    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Octobre 2011
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Octobre 2011
    Messages : 153
    Points : 591
    Points
    591
    Par défaut
    D'accord, merci pour ton aide (et pour ta patience ^^")

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Besoin d'informations concernant la communication entre logiciel métier
    Par synolog dans le forum Microsoft BizTalk Server
    Réponses: 2
    Dernier message: 10/10/2012, 17h30
  2. Communication entre logiciels
    Par TekP@f dans le forum Architecture
    Réponses: 2
    Dernier message: 09/12/2009, 19h37
  3. Communication entre logiciel et uClinux embedded
    Par lebruntibo dans le forum Linux
    Réponses: 1
    Dernier message: 02/09/2008, 14h12
  4. Communication entre 2 logiciels?
    Par toutounesan dans le forum MFC
    Réponses: 1
    Dernier message: 27/08/2007, 09h25
  5. communication entre plugin
    Par loic_86 dans le forum Eclipse Platform
    Réponses: 11
    Dernier message: 08/11/2006, 17h58

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