实际上,您的代码应如下所示:
var cluster = require('cluster');var http = require('http');var numCPUs = require('os').cpus().length;if (cluster.isMaster) { // Fork workers. for (var i = 0; i < numCPUs; i++) { cluster.fork(); }} else { var sio = require('socket.io') , RedisStore = sio.RedisStore , io = sio.listen(8080, options); // Somehow pass this information to the workers io.set('store', new RedisStore); // Do the work here io.sockets.on('connection', function (socket) { socket.on('chat', function (data) { socket.broadcast.emit('chat', data); }) });}另一个选择是打开Socket.IO以侦听多个端口,并具有类似HAProxy负载平衡之类的东西。无论如何,您都知道最重要的事情:使用RedisStore在流程外扩展!
资源:
http://nodejs.org/docs/latest/api/cluster.html
http://delicious.com/alessioaw/socket.io



