Mon serveur fait la source oreille [Socket IO]

Par CYRIAQU3, il y a 11 ans


Javascript NodeJS

Bon je vais un peu plus détailler mon soucis.
Lorsque mon client se connecte au serveur, celui-ci le détecte (j'envoi un petit message pour checker).

Par contre , seul le premier socket.emit partira, les autres ne semblent pas etre reçus par le serveur.

Le coté serveur :

io.sockets.on('connection', function (socket) { socket.on('message', function (data) { console.log("--- message reçu ---"); console.log(data.message); // check du message // ... /// emission du message aux autres clients socket.broadcast.emit('message', {message:data.message}); }); });

Et le client :

// premier envoie lorsque le client se co (pour tester) socket.emit('chat', {message:"Je viens de rejoindre"}); socket.on('chat', function(data) { $("#chat #chat-body").append("<p>"+data.message+"</p>"); console.log(data.message); }); function sendMsg(msg) { socket.emit('message', {message:"dddd"}); } $(function() { $("#message-input").keypress(function( e ) { if ( e.which == 13 ) { sendMsg($(this).val()); $("#chat-body").append("<p><b>"+$(this).val()+"</b></p>") $(this).val(''); } }); });

Avec un console.log j'ai testé et la fonction sendMsg est bien activée.

Quelqu'un pourrais m'éclairer ?
Merci d'avance.

3 réponses

orion, il y a 11 ans

Salut,

Peut tu posté, le debug de socket.io, pour l'activé dans le navigateur il faut créer une variable dans le localStorage.

Sur le serveur tu a juste à faire ceci quand tu lance ton script
Linux:
DEBUG= node tonscript.js
Windows:
set DEBUG=
& node tonscript.js

CYRIAQU3, il y a 11 ans

Salut, problème résolut, en fait je n'appelait tout simplement pas le script socket.io.js (je me suis emmellé les pinceaux tout simplement).

orion, il y a 11 ans

Oui c'est sur que ça doit marché beaucoup mieux maintenant