socket.io连接到多个进程

我正在尝试使用socket.iosocket.io-redisbuild立一个聊天服务器,这样我就可以在多个处理器/服务器上拥有这个进程了。

我遇到的问题是将socket.io-redis集成到一个进程中在一个服务器上运行的已经运行的系统中。 当我使用以下方法将进程集群到两个处理器时: pm2 start chat.js -i max 。 Socket.io不能再保持连接。

为了解决这个问题,我读了我需要使用redis,所以我安装了redis,它正在运行,根据socket.io-redis文档,我需要做的是:

 var io = require('socket.io')(3000); var redis = require('socket.io-redis'); io.adapter(redis({ host: 'localhost', port: 6379 })); 

所以,我已经这样做了:

 var io = require('socket.io')(3032); var redis = require('socket.io-redis'); io.adapter(redis({host: 'localhost', port: 6379})); io.on('connection', function(socket){ socket.broadcast.on('Message', function(data){ data = JSON.parse(data); socket.to(data.room).emit('Message', data.message); }); }); 

而当我在浏览器上运行,我无法连接,我得到这个:

 { "code":1, "message":"Session ID unknown" } 

我需要做些什么才能做到这一点?

 io.on('connection', function (socket) { socket.join('public_room'); socket.on('join', function(data){ io.to('public_room').emit('test',{a:10}); }); });