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 :

Impossible de générer évènement côté client ==> server.js


Sujet :

NodeJS

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2013
    Messages : 23
    Points : 21
    Points
    21
    Par défaut Impossible de générer évènement côté client ==> server.js
    Bonsoir ,

    Excusez j'ai un soucis avec node js , j'utilise une page php ainsi que deux pages js , "server.js" , "client.js et une page php , mais voilà au fait , je voudrais générer un évènement à partir du fichier "client.js" , et ensuite , lorsque cet évènement survient executer un code spécifique dans le fichier "server.js"

    voici mon soucis : un " .émit " dans le fichier "serveur.js " ==> socket.on('evenement, function(){}); fonctionne correctement mais par contre , l'inverse :

    ".emit " dans le fichier "clien.js" ==> socket.on('evenement', function() { }); ne fonctionne pas , pourriez vous me dire à quoi cela est du , et comment je peux résoudre ce problème , voici le contenu de mes deux fichiers :

    client.js

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    $(document).ready(function() {
     
    	var socket = io.connect('http://localhost:8080');					   
     
    	// au moment du click sur le bouton envoyer , je génère un évènement avec quelques paramètres 
    	$('#envoyer').click(function(event) {
    		event.preventDefault();
    		socket.emit('reception', { message : $('#contenu').val()});
    	});
    	socket.on('retour',function(msg) {
    		console.log(msg	);
    	});				   
     });

    server.js :

    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
    // JavaScript Document
    var http = require('http');
     
    httpServer = http.createServer(function(req,res) {});
    httpServer.listen(8080);
    var io = require('socket.io').listen(httpServer);
    	io.sockets.on('connection',function(socket) {
    		console.log('nouveau utilisateur');
    		socket.on('reception', function(message) {
    			/*  le emit situé ici ne marche pas car tout simplement ne recoit pas cette fonction	 */					
    			socket.emit('retour', { message : message});
    		});
    		// le emit situé ici par contre , lui marche
    		//socket.emit('retour', { message : 'message'});
     
    	});
    Merci de votre attention

  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
    Tu es sûr que la variable io est connue dans la closure $(document).ready() ?
    Que te dis Firebug ?
    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 à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2013
    Messages : 23
    Points : 21
    Points
    21
    Par défaut
    Citation Envoyé par Bovino Voir le message
    Tu es sûr que la variable io est connue dans la closure $(document).ready() ?
    Que te dis Firebug ?
    Oui , ma variable io est connue car , dans le fichier 'server.js' , j'ai ajouté ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    	io.sockets.on('connection',function(socket) {
    		console.log('nouvel utilisateur');
    et donc , je me dis que si "io" n'était pas connu , je ne devrais pas voir afficher " nouvel utilisateur " lorsque l'utilisateur a accès à la page

    ensuite , bizarre mais firebug ne m'indique et pourtant aucune erreur

  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
    Ce n'est pas parce qu'elle est définie sur le serveur qu'elle l'est sur le client, loin de là !
    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 à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2013
    Messages : 23
    Points : 21
    Points
    21
    Par défaut
    Mais , alors , comment est ce que je peux faire pour la définir sur le client ?
    Merci pour ton attention

  6. #6
    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
    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

  7. #7
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2013
    Messages : 23
    Points : 21
    Points
    21
    Par défaut
    Toujours pareil , à chaque fois que je veux générer un évènement côté client , j'obtiens ceci dans la console :

    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
     info  - socket.io started
       debug - served static content /socket.io.js
       debug - client authorized
       info  - handshake authorized ALB0omsm3E2ZvPMn02x7
       debug - setting request GET /socket.io/1/websocket/ALB0omsm3E2ZvPMn02x7
       debug - set heartbeat interval for client ALB0omsm3E2ZvPMn02x7
       debug - client authorized for
       debug - websocket writing 1::
       debug - websocket writing 5:::{"name":"news","args":[{"hello":"world"}]}
       debug - setting request GET /socket.io/1/xhr-polling/ALB0omsm3E2ZvPMn02x7?t=1
    374168523063
       debug - setting poll timeout
       debug - discarding transport
       debug - cleared heartbeat interval for client ALB0omsm3E2ZvPMn02x7
       debug - setting request GET /socket.io/1/jsonp-polling/ALB0omsm3E2ZvPMn02x7?t
    =1374168533064&i=0
       debug - setting poll timeout
       debug - discarding transport
       debug - clearing poll timeout
       debug - clearing poll timeout
       debug - jsonppolling writing io.j[0]("8::");
       debug - set close timeout for client ALB0omsm3E2ZvPMn02x7
       debug - jsonppolling closed due to exceeded duration
       debug - setting request GET /socket.io/1/jsonp-polling/ALB0omsm3E2ZvPMn02x7?t
    =1374168556555&i=0
       debug - setting poll timeout
       debug - discarding transport
       debug - cleared close timeout for client ALB0omsm3E2ZvPMn02x7
       debug - clearing poll timeout
       debug - jsonppolling writing io.j[0]("8::");
       debug - set close timeout for client ALB0omsm3E2ZvPMn02x7
       debug - jsonppolling closed due to exceeded duration
       debug - setting request GET /socket.io/1/jsonp-polling/ALB0omsm3E2ZvPMn02x7?t
    =1374168576586&i=0
       debug - setting poll timeout
       debug - discarding transport
       debug - cleared close timeout for client ALB0omsm3E2ZvPMn02x7
       debug - clearing poll timeout
       debug - jsonppolling writing io.j[0]("8::");
       debug - set close timeout for client ALB0omsm3E2ZvPMn02x7
       debug - jsonppolling closed due to exceeded duration
       debug - setting request GET /socket.io/1/jsonp-polling/ALB0omsm3E2ZvPMn02x7?t
    =1374168596600&i=0
       debug - setting poll timeout
       debug - discarding transport
       debug - cleared close timeout for client ALB0omsm3E2ZvPMn02x7
       debug - clearing poll timeout
       debug - jsonppolling writing io.j[0]("8::");
       debug - set close timeout for client ALB0omsm3E2ZvPMn02x7
       debug - jsonppolling closed due to exceeded duration
       debug - setting request GET /socket.io/1/jsonp-polling/ALB0omsm3E2ZvPMn02x7?t
    =1374168616640&i=0
       debug - setting poll timeout
       debug - discarding transport
       debug - cleared close timeout for client ALB0omsm3E2ZvPMn02x7
       debug - clearing poll timeout
       debug - jsonppolling writing io.j[0]("8::");
       debug - set close timeout for client ALB0omsm3E2ZvPMn02x7
       debug - jsonppolling closed due to exceeded duration
       debug - setting request GET /socket.io/1/jsonp-polling/ALB0omsm3E2ZvPMn02x7?t
    =1374168636656&i=0
       debug - setting poll timeout
       debug - discarding transport
       debug - cleared close timeout for client ALB0omsm3E2ZvPMn02x7
       debug - setting request GET /socket.io/1/xhr-polling/ALB0omsm3E2ZvPMn02x7?t=1
    374168523063
       debug - setting poll timeout
       debug - discarding transport
       debug - clearing poll timeout
       debug - clearing poll timeout
       debug - xhr-polling writing 8::
       debug - set close timeout for client ALB0omsm3E2ZvPMn02x7
       debug - xhr-polling closed due to exceeded duration
       debug - setting request GET /socket.io/1/xhr-polling/ALB0omsm3E2ZvPMn02x7?t=1
    374168663072
       debug - setting poll timeout
       debug - discarding transport
       debug - cleared close timeout for client ALB0omsm3E2ZvPMn02x7
       debug - clearing poll timeout
       debug - xhr-polling writing 8::
       debug - set close timeout for client ALB0omsm3E2ZvPMn02x7
       debug - xhr-polling closed due to exceeded duration
       debug - setting request GET /socket.io/1/xhr-polling/ALB0omsm3E2ZvPMn02x7?t=1
    374168690890
       debug - setting poll timeout
       debug - discarding transport
       debug - cleared close timeout for client ALB0omsm3E2ZvPMn02x7
       debug - clearing poll timeout
       debug - xhr-polling writing 8::
       debug - set close timeout for client ALB0omsm3E2ZvPMn02x7
       debug - xhr-polling closed due to exceeded duration
       debug - setting request GET /socket.io/1/xhr-polling/ALB0omsm3E2ZvPMn02x7?t=1
    374168710895
       debug - setting poll timeout
       debug - discarding transport
       debug - cleared close timeout for client ALB0omsm3E2ZvPMn02x7

  8. #8
    Invité
    Invité(e)
    Par défaut
    Salut,

    Est-ce que tu es sur que la fonction bindée au click sur '#envoyer' est bien appelée ?
    Tu peux poster ton code HTML au cas où ?

  9. #9
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2013
    Messages : 23
    Points : 21
    Points
    21
    Par défaut
    Merci , j'ai finalement touvé la réponse sur le tchat , au fait , je devais changer le type de transport
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     io.configure(function () {
      io.set('transports', ['jsonp-polling']);
    });
    juste après la déclaration de ... io =require(...) et c'est bon

    Merci à vous et bonne journée

Discussions similaires

  1. Réponses: 3
    Dernier message: 29/07/2014, 18h53
  2. Réponses: 2
    Dernier message: 07/06/2012, 12h29
  3. [JVM]Différences entre client et server
    Par ssaunois dans le forum Général Java
    Réponses: 4
    Dernier message: 11/02/2010, 17h33
  4. [vba] Envoi de fichier ascii client Windows => server Lin
    Par kremvax dans le forum Général VBA
    Réponses: 3
    Dernier message: 28/11/2005, 12h00
  5. Client SQL Server
    Par ouechouech dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 26/04/2005, 08h22

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