socket.io client ne reçoit pas de messages à partir du serveur

Je suis en train de mettre en place un système avec deux clients, l'un d'eux envoie un message et l'autre doit le recevoir.
La figure ci-dessous va l'expliquer d'une façon plus visuelle:

socket.io client ne reçoit pas de messages à partir du serveur

Le client 1 envoyer le message au serveur (et ça fonctionne), le serveur reçoit un "push" message et émet un "pop" du message qui doit être récupéré par le Client 2.
Le problème ici est que le Client 2 reçoit jamais le "pop" du message. 🙁

Voici le code pour tous.

SERVER.JS

var app = require('express').createServer()
  , io = require('socket.io').listen(app);

app.listen(999);

app.get('/webclient', function (req, res) {
    res.sendfile(__dirname + '/web.html');
});

app.get('/mobile', function (req, res) {
    res.sendfile(__dirname + '/mobile.html');
});

io.sockets.on('connection', function (socket) {
//     socket.emit('pop', { hello: 'world' });
    socket.on('push', function (data) {
        console.log('push received, emitting a pop');
        socket.emit('pop', { hello: 'world' });
    });
});

CLIENT 1 ( aka mobile.html )

<html>
    <head>
        <title>
            Mobile
        </title>
        <script src="/socket.io/socket.io.js"></script>
        <script src="https://ajax.googleapis.com/ajax/libs/mootools/1.4.5/mootools-yui-compressed.js" type="text/javascript"></script>
        <script>
          var socket = io.connect('http://localhost:999');
        </script>
    </head>
    <body>
        <input type="button" name="act" id="push" value="message" />
        <script type="text/javascript" charset="utf-8">
            window.addEvent('domready', function() {
                $('push').addEvent('click', function() { 
                    socket.emit('push', { hello: 'world' });
                });
            });
        </script>
    </body>
</html>

CLIENT 2 (aka web.html)

<script src  = "/socket.io/socket.io.js"></script>
<script>
  var socket = io.connect('http://localhost:999');
  socket.on('pop', function (data) {
    console.log(data);
  });
</script>

J'ai juste ne peut pas comprendre la raison pour laquelle le Client 2 ne reçoit pas le "pop" du message,
Je suis assez nouveau à douille.io et node.js en général, de sorte que certains de la mécanique me sont encore un peu obscures, donc je m'excuse d'avance pour mon noobness. 🙂

acclamations

-k-

  • Je ne suis pas expérimenté avec la prise.io, mais si je ne me trompe pas socket va se référer à la même prise que vous avez reçu le message. Pourriez-vous essayer io.sockets.emit à la place?
  • fonctionne comme un charme! si vous voulez faire une réponse que je peux marquer que correcte et vous obtenez un +1 🙂
  • +1 pour une question intéressante, et a demandé et formaté
  • merci, je suis content que cela a été utile à quelqu'un d'autre 🙂
InformationsquelleAutor holographix | 2012-03-23