Mise À L'Échelle De La Prise.Les e / s multiples Node.js les processus à l'aide de cluster

Déchirer mes cheveux avec celui-ci... quelqu'un a réussi à l'échelle Socket.IO à de multiples "travailleur" processus engendré par Node.js's cluster module?

Permet de dire que j'ai le texte suivant sur quatre processus de travail (pseudo):

//on the server
var express = require('express');
var server = express();
var socket = require('socket.io');
var io = socket.listen(server);

//socket.io
io.set('store', new socket.RedisStore);

//set-up connections...
io.sockets.on('connection', function(socket) {

  socket.on('join', function(rooms) {
    rooms.forEach(function(room) {
      socket.join(room);
    });
  });

  socket.on('leave', function(rooms) {
    rooms.forEach(function(room) {
      socket.leave(room);
    });
  });

});

//Emit a message every second
function send() {
  io.sockets.in('room').emit('data', 'howdy');
}

setInterval(send, 1000);

Et sur le navigateur...

//on the client
socket = io.connect();
socket.emit('join', ['room']);

socket.on('data', function(data){
  console.log(data);
});

Le problème: Chaque seconde, je reçois quatre messages, en raison de quatre processus de travail de l'envoi des messages.

Comment puis-je m'assurer que le message n'est envoyé qu'une fois?

InformationsquelleAutor Lee Benson | 2013-08-19