Масштабирование Socket.IO для нескольких процессов Node.js с использованием кластера

Вырвать мои волосы с этим ... кто-нибудь успел масштабироватьSocket.IO к нескольким «рабочим» процессам, порожденным Node.jsкластер модуль?

Допустим, у меня есть следующее начетыре рабочие процессы (псевдо):

// 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);

И в браузере ...

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

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

Проблема: Каждую секунду я получаючетыре сообщения, из-за четырех отдельных рабочих процессов, отправляющих сообщения.

Как я могу убедиться, что сообщение отправлено только один раз?

Ответы на вопрос(4)

Ваш ответ на вопрос