用这个来扯掉我的头发。。。有人能将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); });
问题:由于四个独立的工作进程发送消息,因此我每秒收到四条消息。
如何确保消息仅发送一次?