Mon serveur fait la source oreille [Socket IO]

47201
,

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éponse

27320
,

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

47201
,

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).

27320
,

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