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 :

Messagerie privée (affichage de message dans la bonne fenêtre)


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 Messagerie privée (affichage de message dans la bonne fenêtre)
    Bonjour tous le monde.

    Je suis en train de faire une messagerie privée, j'avance bien mais j'ai quelques soucis.
    Je ne sais pas comment faire pour qu'un message s'affiche en direct uniquement si l'utilisateur est dans la page de la conversation concernée.

    Voici mon code pour le moment :

    Coté client :
    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
     
     <script src="http://localhost:8080/socket.io/socket.io.js"></script>
            <script>
                var socket = io.connect('http://localhost:8080');
                var destinataire = "{{ idDest }}";
                var expediteur = "{{ app.user.id }}";
     
     
                socket.emit('join', expediteur);
     
                $('form').submit(function(event){
                    event.preventDefault();
                    var message = $('#feelinglove_messagebundle_message_contenu').val();
                    socket.emit('message', {destinataire: destinataire, message: message});
                    $('#feelinglove_messagebundle_message_contenu').val('');
                });
     
                socket.on("new_msg", function(data) {
                    alert(data.msg);
                });
     
            </script>
    Coté serveur :
    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
    27
    28
    29
     
    var http = require('http');
    var fs = require('fs');
    var url = require('url');
     
    var server = http.createServer(function(req, res) {
        console.log("un utilisateur affiche la page");
        var page = url.parse(req.url).pathname;
        console.log(page);
    });
     
    // Chargement de socket.io
    var io = require('socket.io').listen(server);
     
    // Quand on client se connecte, on le note dans la console
    io.sockets.on('connection', function (socket) {
        var user;
        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);

  2. #2
    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
    Je n'ai toujours pas trouvé ma solution

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    var server = http.createServer(function(req, res) {
        console.log("un utilisateur affiche la page");
        var page = url.parse(req.url).pathname;
        console.log(page);
    });
    Ce que je comprends pas c'est que mes logs dans mon createServeur ne sont pas éxécutés pourquoi ? Alors que tout ce qui est dans mon soket.io fonctionne

  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
    Bon j'avance ! Sauf que maintenant lorsque je veux récupérer l'url de la page en cours il me met "/socket.io/" à chaque chargement de ma page. Pourquoi l'url ne s'affiche pas ?

    Voici mon code côté
    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);
        });
    });
     
     
     
    app.listen(8080);

  4. #4
    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
    Sûrement parce que tu n'appelle pas l'URL du serveur node mais tu envoi directement tes données via socket.io....

Discussions similaires

  1. Affichage de message dans une page aspx.vb
    Par peregna2007 dans le forum ASP.NET
    Réponses: 3
    Dernier message: 17/07/2008, 14h56
  2. Problème d'appel d'affichage de messages dans évènement TUpDown
    Par the_clansman dans le forum Composants VCL
    Réponses: 16
    Dernier message: 04/02/2008, 17h13
  3. Probleme d'affichage de Message dans un Panel
    Par vorhax dans le forum Windows Forms
    Réponses: 1
    Dernier message: 14/04/2007, 21h13
  4. [Exception]Affichage de message dans une Execption
    Par harris_macken dans le forum Général Java
    Réponses: 8
    Dernier message: 29/05/2005, 17h34

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