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 :

Question de débutant


Sujet :

NodeJS

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    223
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 223
    Points : 47
    Points
    47
    Par défaut Question de débutant
    Bonjour à tous,

    Ma question est la suivante :

    Comment utiliser Node.js (et socket.io) sur un port 8080 (en local) alors que mon serveur apache est sur le port 8888.

    En gros je ne peux pas éxécuter mon site sous symfony avec une adresse localhost:8080 car mon Apache est sur le port 8888.

    Alors comment ça se passe ?

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    Quel est le rapport entre Node.js et un serveur Apache ?
    Si tes deux serveurs n'utilisent pas le même port, je ne vois pas trop quel est ton problème ?

    Comment utiliser Node.js (et socket.io) sur un port 8080
    http://localhost:8080...
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    223
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 223
    Points : 47
    Points
    47
    Par défaut
    Oui c'est bien ce que j'ai compris sauf que lorsque je veux récupérer l'url en cours par exemple via node.js et que j'execute ma page http://localhost:8888/monsite/web/ap...php/message/18 rien ne s'affiche dans ma console.

    Par contre si je fais http://localhost:8080/monsite/web/ap...php/message/18 (j'écoute le port 8080 avec node js) alors la dans ma console s'affiche bien l'url qui est appelée.

  4. #4
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    Je comprends rien à ce que tu demandes, ni à ce que tu essayes de faire...
    Si tu veux que node écoute le port 8080, je ne vois pas pourquoi il serait sensé faire quoi que ce soit sur le port 8888.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    223
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 223
    Points : 47
    Points
    47
    Par défaut
    Bon je vais essayer d'expliquer mieux

    J'ai un site web sous symfony. Dans ce site je veux faire une messagerie privée instantannée. Pour cela je dois récupérer l'url (qui contient un id) afin que les messages s'affichent au bon endroit.
    J'utilise également socket.io pour cela.

    Tout ce qui est socket.io fonctionne parfaitement, sauf que je n'arrive pas à récupérer l'url qui est executée par le client. Voici mon code coté serveur si ça peut t'aider à mieux comprendre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    var app = require('express')();
    var server = require('http').createServer(app);
    var io = require('socket.io').listen(server);
    var fs = require('fs');
    var url = require('url');
     
    app.use(function(req, res) {
        var path = url.parse(req.url).pathname;
        console.log(path);
    });
     
    // Quand on client se connecte, on le note dans la console
    io.sockets.on('connection', function (socket) {
        socket.on('join', function (expediteur) {
            socket.join(expediteur); // We are using room of socket io
        });
     
        socket.on('message',function (data) {
            io.to(data.destinataire).emit('new_msg', {msg: data.message});
            console.log(data);
        });
    });
     
     
     
    server.listen(8080);
    Et ce que je ne comprends pas c'est que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    app.use(function(req, res) {
        var path = url.parse(req.url).pathname;
        console.log(path);
    });
    ne fonctionne uniquement si j'execute ma page avec le port 8080 (localhost:8080).

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    223
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 223
    Points : 47
    Points
    47
    Par défaut
    Dis moi si ce n'est pas clair ou si tu ne vois pas d'ou peut venir le problème mais je veux bien une réponse dans tout les cas histoire de savoir si c'est moi qui bug ou si il y a autre chose

  7. #7
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    Donc si je comprends bien, ru as un site Web développé en PHP.
    Dans ce site Web, tu as une partie de l'affichage qui sert de chat en utilisant nodejs.
    Donc la page affichée est sur le port 8888, mais elle communique avec ton serveur node sur le port 8080.
    Le truc, c'est que ta page envoie des requêtes au serveur node en appelant une URL sur ce serveur, donc sur le port 8080 et ton serveur ne peut absolument pas connaitre l'URL de la page affichée à moins de la lui transmettre explicitement, par exemple au moment de la connexion à ton chat.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    223
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 223
    Points : 47
    Points
    47
    Par défaut
    ah super maintenant je comprends mieux. Tu as une idée pour faire cela ? Car en fait je veux récupérer un id dans mon url et je pensais utiliser quelque chose dans ce style
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    app.get('/message/:idDestinataire', function(req, res) {
     
        var id = req.params.idDestinataire;
     
    });

  9. #9
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    Non, parce que je connais assez mal Express / Socket, mais j'imagine qu'à la connexion, il est possible de transmettre un objet de paramètres. Il faut regarder dans la doc.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  10. #10
    Membre actif Avatar de John Blobsmith
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    198
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 198
    Points : 223
    Points
    223
    Par défaut
    Le code que t'a mis semble correct, mais pourquoi tu n'utilise pas uniquement socket.io pour la communication avec node ?

Discussions similaires

  1. Réponses: 13
    Dernier message: 23/06/2005, 11h56
  2. question de débutant sur les objets
    Par boucher_emilie dans le forum ASP
    Réponses: 3
    Dernier message: 06/08/2004, 11h51
  3. [MFC] Quelques questions de débutant...
    Par Sephi dans le forum MFC
    Réponses: 4
    Dernier message: 20/02/2004, 18h25
  4. Questions de débutant
    Par J-P-B dans le forum XMLRAD
    Réponses: 12
    Dernier message: 24/07/2003, 16h19
  5. [HyperFile] 2 questions de débutant
    Par khan dans le forum HyperFileSQL
    Réponses: 2
    Dernier message: 30/04/2002, 00h18

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