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 :

Express et Socket.io


Sujet :

NodeJS

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    nope
    Inscrit en
    Décembre 2012
    Messages
    123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : nope

    Informations forums :
    Inscription : Décembre 2012
    Messages : 123
    Par défaut Express et Socket.io
    Bonjour,

    Je débute avec NODEJS et une question s'ouvre à moi. Je fais de la communication client server via websocket. Coté client j'utilise angularJS et coté serveur nodeJS coupé à express et socket.io.

    J'ai bien compris le concept d’événements dans les deux sens.
    Par contre, là, un problème s'offre à moi. Je souhaite : sur un même serveur NODEJS j'aimerais récupérer des informations via GET pour effectuer un traitement et broadcaster le résultat via ma websocket. Pour le moment j'ai un code qui ressemble à ça :

    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
    30
    31
    32
    33
    34
     
    var app = require('express')();
    var server = require('http').Server(app);
    var websocket = require('socket.io')(server);//creation websocket lié au serveur
     
     
    app.get('/',function(req,res){
    	res.header('Access-Control-Allow-Origin', '*');
        res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE');
        res.header('Access-Control-Allow-Headers', 'Content-Type');
    	res.write(JSON.stringify('Données temporaire de test'));
    	res.end();
    }).get('/envoioracle',function(req,res){
    	res.header('Access-Control-Allow-Origin', '*');
        res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE');
        res.header('Access-Control-Allow-Headers', 'Content-Type');
     
    	/* Traiement de l'inf reçu et broadcast derrière  */
     
    	res.write('Resultat après traitement a renvoyer');
     
    	res.end();
     
     
    });
     
     
    websocket.on('connection',function(socket){
    	socket.emit('welcome',{msg:'Bienvenu sur le module'});
    	console.log('aw ça se co x)');
    	socket.on('newMsg',function(data){
    	});
     
    server.listen(3000);
    Dans l'idée, récupérer les infos envoyées via GET ne me pose pas de souci. Par contre, je ne sais pas comment effecteur un broadcast sans pour autant avoir d'appel coté client.

    Si quelqu'un a une piste à me donner pour avancer ça me dépannerai beaucoup.

    D'avance merci de vos réponses.

  2. #2
    Membre confirmé
    Homme Profil pro
    nope
    Inscrit en
    Décembre 2012
    Messages
    123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : nope

    Informations forums :
    Inscription : Décembre 2012
    Messages : 123
    Par défaut
    Je m'auto répond juste au cas où ça pourrait servir à quelqu'un d'autre :

    Il suffit d'inclure l’événement de réception de données via POST ou GET dans le block de gestion de connexion de la websocket.

    Soit quelque chose comme ça :

    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
     
     
    websocket.on('connection',function(socket){
     
    	socket.emit('welcome',{msg:'Bienvenu sur le module'});
    	console.log('Connexion d'un client');
     
     
            app.get('/',function(req,res){
    	     res.header('Access-Control-Allow-Origin', '*');
                 res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE');
                res.header('Access-Control-Allow-Headers', 'Content-Type');
    	    res.write(JSON.stringify('Données temporaire de test'));
    	    res.end();
                /*
                   Code broadcastant les informations voulu après réception d'un get
                */
                });
     
    });

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

Discussions similaires

  1. express et io.socket
    Par keokaz dans le forum NodeJS
    Réponses: 3
    Dernier message: 12/10/2014, 18h59
  2. executer une application a distance : Sockets ? RPC ? CORBA?
    Par a_hic dans le forum Développement
    Réponses: 5
    Dernier message: 30/05/2006, 13h02
  3. Socket:Envoyer du texte d'un serveur vers tout les clients
    Par cedm78 dans le forum Web & réseau
    Réponses: 7
    Dernier message: 01/08/2002, 16h40
  4. transfert d'un fichier bitmap en socket tcp
    Par localhost dans le forum C++Builder
    Réponses: 5
    Dernier message: 29/07/2002, 00h40
  5. Réponses: 5
    Dernier message: 11/06/2002, 15h21

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